Octri

MCP Server

Transports

The server speaks two transports. The default needs no hosting; the other exists for teams who'd rather run one instance than have everyone configure their own.

stdio

The default. The MCP client starts the process and talks to it over stdin and stdout.

json
{
  "mcpServers": {
    "my-api-docs": {
      "command": "npx",
      "args": ["@octri/mcp", "--project-id", "YOUR_PROJECT_ID"]
    }
  }
}

No ports, no hosting, no network exposure. This is what Claude Desktop and Cursor use, and what you want unless you have a specific reason otherwise.

sse

For hosting the server centrally so a team shares one instance. Set MCP_TRANSPORT=sse and optionally PORT, which defaults to 3000.

bash
MCP_TRANSPORT=sse PORT=3000 OCTRI_PROJECT_ID=YOUR_PROJECT_ID npx @octri/mcp

Choosing

stdiosse
HostingNoneYou run it
CredentialsEach user's ownShared by everyone connected
Network exposureNoneA listening port
Setup per userA config fileA URL
A shared server shares its credentials

Under stdio, each developer's credentials stay on their machine and their API calls are theirs. An SSE server calls your API with whatever credentials it was started with, on behalf of everyone connected.

That means every user of that server can do whatever its credential can do, and your API logs attribute all of it to one identity. If you host it, give it the narrowest credential that works, or none at all so it serves docs tools only.

A docs-only shared server

The safest useful deployment: SSE with OCTRI_PROJECT_ID and no API credentials. Everyone gets documentation tools; nobody gets operation tools. A team gets shared context with no shared blast radius.

Then let individuals add operation tools locally

Anyone who wants the agent to call the API runs their own stdio instance with their own credential. Shared context, individual authority.