Skip to main content

My servers

Setup for each server I run. No credentials here — every token comes from the environment or a secret manager.

Atlassian (Jira)

{
"mcp-atlassian": {
"command": "uvx",
"args": ["mcp-atlassian"],
"env": {
"JIRA_URL": "https://<your-jira-host>/jira",
"JIRA_PERSONAL_TOKEN": "${JIRA_PERSONAL_TOKEN}"
}
}
}

Personal Access Token from Jira → Profile → Personal Access Tokens. Scope it read-only unless you actually want the agent transitioning tickets. Docs: sooperset/mcp-atlassian.

Pairs with the spec-to-tickets and spec-drift-triage skills.

Grafana — one server per environment

{
"grafana-dev": {"command": "uvx", "args": ["mcp-grafana@1.2.0"],
"env": {"GRAFANA_URL": "https://grafana.dev.example.com", "GRAFANA_SERVICE_ACCOUNT_TOKEN": "${GRAFANA_DEV_TOKEN}"}},
"grafana-staging": {"command": "uvx", "args": ["mcp-grafana@1.2.0"],
"env": {"GRAFANA_URL": "https://grafana.staging.example.com","GRAFANA_SERVICE_ACCOUNT_TOKEN": "${GRAFANA_STAGING_TOKEN}"}},
"grafana-production": {"command": "uvx", "args": ["mcp-grafana@1.2.0"],
"env": {"GRAFANA_URL": "https://grafana.example.com", "GRAFANA_SERVICE_ACCOUNT_TOKEN": "${GRAFANA_PROD_TOKEN}"}}
}

Three names, three tokens — so querying production is always deliberate. Pin the version; an unpinned uvx upgrades mid-incident, which is the worst possible moment. Service account with the Viewer role only.

Docs: grafana/mcp-grafana. Gives the agent dashboards, Prometheus and Loki queries, and alert state — see the observability workflow.

Notion

{"notion": {"type": "http", "url": "https://mcp.notion.com/mcp"}}

Remote, OAuth — /mcp in a session to authorize. No token in any file.

Figma

A local Go bridge (figma-mcp-go) over stdio:

{"figma-mcp-go": {"type": "stdio", "command": "node", "args": ["<path>/figma-mcp-go/bin/run.js"], "env": {}}}

Alternative worth knowing: GLips/Figma-Context-MCP (★16k) serves Figma layout data to any agent.

Teams / Outlook

{"teams": {"type": "stdio", "command": "npx", "args": ["-y", "msteams-mcp@latest"]}}
{"outlook": {"command": "node", "args": ["<path>/mcp-outlook-applescript/dist/index.js"]}}

Outlook is AppleScript-driven, so macOS-only and it drives the desktop client.

Local HTTP servers

radar and doorjames are local. The HTTP one needs the mcp-remote bridge:

{"radar": {"command": "npx", "args": ["-y", "mcp-remote", "http://localhost:52247/mcp", "--allow-http"]}}

--allow-http is only acceptable because it is localhost. Never for a remote host.

Machine-specific paths

Several of these use absolute paths (/Users/<me>/...), so the config does not transfer between machines as-is. Either keep them in the user-scope ~/.claude.json, or use ${HOME} and a consistent checkout location.