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.
{
"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.
MCP_TRANSPORT=sse PORT=3000 OCTRI_PROJECT_ID=YOUR_PROJECT_ID npx @octri/mcpChoosing
| stdio | sse | |
|---|---|---|
| Hosting | None | You run it |
| Credentials | Each user's own | Shared by everyone connected |
| Network exposure | None | A listening port |
| Setup per user | A config file | A URL |
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.
Anyone who wants the agent to call the API runs their own stdio instance with their own credential. Shared context, individual authority.