Connect your AI client to Tiny Systems

The platform exposes a Streamable HTTP MCP endpoint at mcp.tinysystems.io/mcp. Point Claude Code, Cursor, Windsurf, or any other MCP client at it with a developer-key bearer token. No CLI install, no local binary.

1

Get a developer key

The key authenticates the MCP session and scopes it to your workspace's projects, flows, modules, and dashboards. Mint one from the dashboard at Account → Developer Keys. Pick the "Personal" type if it's bound to you; "Service account" for CI / shared bots.

For the rest of this page, replace $TINY_KEY with the key value (or export it as an environment variable).

2

Wire it into your AI client

Claude Code

One command:

shell
claude mcp add --transport http tinysystems \
https://mcp.tinysystems.io/mcp \
--header "Authorization: Bearer $TINY_KEY"

Verify with claude then /mcp — you should see tinysystems with status "connected".

Manual JSON config

Add to ~/.claude.json:

json
{
  "mcpServers": {
    "tinysystems": {
      "type": "http",
      "url": "https://mcp.tinysystems.io/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY_HERE"
      }
    }
  }
}

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

json
{
  "mcpServers": {
    "tinysystems": {
      "type": "http",
      "url": "https://mcp.tinysystems.io/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY_HERE"
      }
    }
  }
}

Restart Claude Desktop after editing.

Cursor

Settings → MCP Servers → Add:

json
{
  "mcpServers": {
    "tinysystems": {
      "type": "http",
      "url": "https://mcp.tinysystems.io/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY_HERE"
      }
    }
  }
}

Windsurf

json
{
  "mcpServers": {
    "tinysystems": {
      "type": "http",
      "url": "https://mcp.tinysystems.io/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY_HERE"
      }
    }
  }
}

Any MCP client

The endpoint speaks the MCP Streamable HTTP transport. POST JSON-RPC frames to https://mcp.tinysystems.io/mcp with two headers:

shell
Authorization: Bearer $TINY_KEY
Mcp-Session-Id: <sticky session id; minted by server if omitted>

The server replies with application/json for most calls and text/event-stream for calls that mutate the tool catalog (install_module / uninstall_module), followed by a notifications/tools/list_changed frame so the client can refresh its tool list mid-session.

3

Multiple workspaces

One MCP server entry per workspace. Mint a separate dev key per workspace and register them under distinct names so you can tell the AI which one to work in:

shell
# Production workspace
claude mcp add --transport http tinysystems-prod \
https://mcp.tinysystems.io/mcp \
--header "Authorization: Bearer $TINY_KEY_PROD"
# Staging workspace
claude mcp add --transport http tinysystems-staging \
https://mcp.tinysystems.io/mcp \
--header "Authorization: Bearer $TINY_KEY_STAGING"

The endpoint URL is the same; the bearer key decides which workspace the session lands in.

Or run against your own kubeconfig

The desktop client ships the same flow editor, module browser, and widget dashboards as a native app that talks to your local kubeconfig. No platform account needed, open source, runs on macOS / Windows / Linux. Pick this path if you want to manage flows on a cluster you already operate.

Troubleshooting

"Reconnected to tinysystems, but fetching tools failed"

Bearer token is missing or invalid. Check the Authorization header in your client's config; mint a fresh key from the dashboard if needed. Make sure there's no stray whitespace in the value.

Tools/list returns only the static 26 tools, no dynamic ones

No modules installed in your workspace yet. Ask the AI to call search_modules or install_module — installs in your workspace surface their components as agent tools automatically.

Newly-installed module's tools don't appear mid-session

The server emits notifications/tools/list_changed after every install/uninstall via the Streamable HTTP SSE response. Make sure your client honors the tools.listChanged capability — if it doesn't, disconnect and reconnect the MCP server to refresh.

Session times out after long periods of inactivity

The MCP session is in-memory on the server. After very long idles you may need to /mcp reconnect — sessions don't survive server restarts. Your dev key stays valid.

Ready to go?