Claude Code integration¶
MESA registers each server as a local stdio MCP server: Claude Code launches the binary as a subprocess and talks to it over standard input/output. No network ports, no hosted service required. Claude Code is one of four clients MESA supports — see also Codex CLI, Antigravity, and OpenCode.
Scopes¶
The installer uses user scope (-s user) so the servers are available in every Claude
Code project on your machine. The three scopes Claude Code supports:
| Scope | Stored in | Visible to |
|---|---|---|
local |
your user config, keyed to the current project | just you, just this project |
user |
your user config | you, every project (MESA default) |
project |
.mcp.json committed in the repo |
everyone who clones the repo |
Override with MCP_SCOPE, e.g. MCP_SCOPE=project to drop a shareable .mcp.json into the
current directory instead.
Managing the servers¶
claude mcp list # show all servers + health
claude mcp get mesa-mcp # show one server's config
claude mcp remove mesa-mcp -s user
The registration MESA creates¶
User-scope registrations live in ~/.claude.json; project scope lands in a .mcp.json
committed at the repo root.
{
"mcpServers": {
"mesa-mcp": { "type": "stdio", "command": "~/.mesa/.venv/bin/mesa-mcp",
"args": ["--transport", "stdio"], "env": {} },
"irods": { "type": "stdio", "command": "~/.mesa/bin/irods-mcp-server",
"args": ["-c", "~/.mesa/repos/irods-mcp-server/config-stdio.yaml"], "env": {} },
"formation": { "type": "stdio", "command": "~/.mesa/bin/formation-mcp",
"args": ["--transport", "stdio"], "env": {} }
}
}
mesa-ducklake is not listed here
mesa-ducklake is a library imported by mesa-mcp, not a separate MCP server. Its
capabilities surface through mesa-mcp's mesa_ducklake_* tools. See
its page.
Conflicting scopes¶
If claude mcp list warns that a server is "defined in multiple scopes", you have the
same name registered more than once (e.g. an older hand-rolled entry plus the MESA one).
Keep the one you want and remove the rest:
Alternative: hosted / remote servers¶
Local stdio is the default and needs no auth for public data. CyVerse also runs hosted
MCP endpoints you can connect to instead of building locally — for example the public
iRODS server at https://mcp.cyverse.ai/mcp:
Hosted mesa-mcp (Streamable HTTP / SSE behind CyVerse Keycloak OIDC) is documented in the
mesa-mcp repo; it requires authentication. The MESA
installer focuses on the local build because it works offline-of-auth and gives you live,
editable source.