Docs

Connect an AI agent

Connect Claude Code, Cursor or any MCP client to Fortly so your agent can read your projects, releases and logs, with access you approve.

Updated October 12, 2026
On this page
  1. The endpoint
  2. Set up your client
  3. Sign in and approve access
  4. Tools
  5. Example prompts
  6. Security
  7. Troubleshooting
  8. "this agent was not granted logs:read. Reconnect it and approve that permission."
  9. "no project called … in this agent's access"
  10. The client keeps asking you to sign in

Fortly runs a remote MCP server. Connect your coding agent to it and the agent can look up your projects, see what has been deployed, and read your logs while it works. You sign in through your browser and choose which projects the agent can reach and what it can see. There is no token to copy or paste.

The agent's access is read-only. No tool can deploy, change or delete anything, and no agent is ever given a secret's value.

The endpoint

https://api.fortly.com/mcp

The server uses the Streamable HTTP transport, and agents sign in with OAuth 2.1. Clients find the sign-in details on their own, from the server's discovery documents at https://api.fortly.com/.well-known/oauth-protected-resource.

Set up your client

Add the server from your terminal:

Terminal
claude mcp add --transport http fortly https://api.fortly.com/mcp

Then, in Claude Code:

  1. Run /mcp and pick fortly.
  2. Your browser opens on the Fortly console. Approve the projects it may reach.

The console has the same instructions. Choose Connect agent to Fortly next to the search box.

Sign in and approve access

When your client connects for the first time, it opens a Fortly page in your browser. Sign in if you are not signed in already. The page names the client asking for access and has two choices, and nothing is selected for you:

  • Permissions. Only the ones the client asked for are listed. Approve the ones you want it to have.
  • Projects. Pick the projects it may reach, or choose Every project on this account, including ones I create later. The second option is broader than most agents need.

Choose Authorize, and your client is connected. Choose Cancel and it gets nothing.

PermissionWhat the consent page saysTools it allows
projects:readSee your projects and their settingslist_projects, get_project
deployments:readSee what has been deployed, and whenlist_deployments
logs:readRead your projects' logsquery_logs

After you approve, the client gets an access token that lasts an hour and refreshes it on its own. Each refresh issues a new refresh token valid for 30 days. An agent you keep using stays connected, and one left unused for 30 days has to sign in again.

Tools

The server has four tools. Each one checks your grant twice. It checks that you approved the permission and the project, and it checks that you can still reach that project now. A project you have since been removed from stops resolving, even though the grant still names it.

ToolPermissionWhat it does
list_projectsprojects:readLists the projects this agent can reach, with each one's name, label, live URL, state and region.
get_projectprojects:readLooks up one project by name: its address, region, state, runtime and start command.
list_deploymentsdeployments:readLists up to 50 of a project's most recent releases. Each one has its id, when it was created, its state, and where it came from (upload or GitHub, with commit and branch).
query_logslogs:readReads a bounded page of a project's recent output, oldest line first.

Tools that take a project need its full name, as list_projects reports it. That is the name you gave the project plus your account name, such as blog-ada, not the label blog.

query_logs takes these parameters:

projectstringRequired
The project's full name.
limitinteger
How many lines to return. Defaults to 100, at most 500.
beforeinteger
Return lines older than this sequence number, to page backwards.

Each line has a sequence number seq, a time at, a source that says where it came from, a stream (out or err), and its text. The response's more is true when older lines exist. query_logs does not follow the log, so call it again for newer lines.

Example prompts

Once your agent is connected, ask in plain language. It picks the tools.

  • "Which of my Fortly projects are running right now, and what are their URLs?"
  • "When was blog-ada last deployed, and from which commit?"
  • "Read the last 200 log lines for blog-ada and tell me why requests are failing."
  • "The latest release of blog-ada failed. Find the error in its build output and fix it in this repository."
  • "Compare the release that is live on blog-ada with the one before it."

The tools only read. To act on what the agent finds, ask it to change your code, then deploy as usual. To give the agent this documentation as well, see Docs for LLMs.

Security

  • Read-only. No tool deploys, changes settings, or deletes anything.
  • No secrets. An agent never sees your password, your API tokens, or the value of any secret.
  • Only what you approved. The grant lists the permissions and projects you picked. Asking for a project outside the grant gets the same answer as asking for one that does not exist, so an agent cannot discover other projects' names.
  • Separate from API tokens. An API token can do anything your account can do. An agent's grant is a different, narrower credential, limited to what you approved.
  • Revocable at any time. Go to Settings › Connected agents in the console and revoke the agent. It stops working immediately, including anything it is in the middle of, and you can connect it again whenever you like.

Troubleshooting

"this agent was not granted logs:read. Reconnect it and approve that permission."

You did not approve the permission this tool needs when you connected. The message names the permission. Revoke the agent under Settings › Connected agents, connect it again, and approve that permission.

"no project called … in this agent's access"

Either the project is not in the grant, or the name is wrong. Ask the agent to run list_projects, and use the full name it returns, not the label. If the project is missing from that list, reconnect and approve it.

The client keeps asking you to sign in

The agent was revoked, or it went unused for more than 30 days. Run the sign-in flow again. In Claude Code, run /mcp and pick fortly.

Something missing or unclear? Tell us and we will fix the page.© 2026 Fortly