Skip to content

Claude Context MCP Server

The Claude Context MCP Server is a Cloudflare Worker that exposes Arda’s skill library, agent profiles, and documentation site content over the Model Context Protocol (MCP). It gives claude.ai cloud sessions access to the same skills, personas, and project knowledge that Claude Code CLI sessions get from local files.

Claude Code sessions have direct filesystem access to the workspace/ repository — skills, agent profiles, and documentation are loaded on demand from local files. Cloud sessions on claude.ai have no such access. The MCP server bridges this gap by serving the same content over HTTP.

claude.ai / Claude Code
│ MCP HTTP+SSE
│ Authorization: Bearer <Base64(GitHub PAT)>
┌──────────────────────────┐
│ Cloudflare Worker │
│ claude-context-mcp │
│ │
│ list_* → bundled indexes │ ← built at deploy time (zero runtime API calls)
│ get_* → GitHub API │ ← live fetch with 10-min cache
└──────────────────────────┘
│ Authorization: Bearer <decoded PAT>
┌──────────────────────────┐
│ GitHub Contents API │
│ Arda-cards/agentic- │
│ workspace │
│ Arda-cards/documentation │
└──────────────────────────┘

Key design points:

  • list_* tools serve pre-built indexes bundled into the Worker at deploy time — zero runtime GitHub API calls.
  • get_* tools fetch live from GitHub with a 10-minute Cloudflare Cache API TTL. Pass skipCache: true to force a fresh fetch.
  • The Worker holds no secrets. The caller’s GitHub PAT travels in the request header, is decoded from URL-safe Base64, and forwarded to GitHub.
  • Durable Objects provide MCP session state.
ToolParametersDescription
list_skillsnoneLists all skills with names, descriptions, argument hints, and companion file manifests
get_skillname, skipCache?Fetches the full SKILL.md content for a named skill
get_skill_fileskill, file, skipCache?Fetches an arbitrary file from a skill directory (returned Base64-encoded)
list_agentsnoneLists all agent profiles with names, descriptions, model, and allowed tools
get_agentname, skipCache?Fetches the full profile for a named agent
list_docsnoneReturns the documentation index as a hierarchical tree
get_docpath[], skipCache?Fetches raw markdown source for a documentation page
  • A GitHub Fine-grained PAT with Contents: Read-only on Arda-cards/agentic-workspace and Arda-cards/documentation
  • The PAT encoded as URL-safe Base64
Terminal window
echo -n "github_pat_YOUR_TOKEN" | base64 | tr '+/' '-_' | tr -d '='

If you use 1Password, store the encoded value alongside the original PAT:

Terminal window
ENCODED=$(op read "op://Private/GitHub Personal Access Token/token" \
| tr -d '\n' | base64 | tr '+/' '-_' | tr -d '=') \
&& op item edit "GitHub Personal Access Token" --vault Private "base64-url-safe=$ENCODED"
  1. Open a claude.ai Project and go to Project Settings > MCP Servers > Add Server
  2. Set:
    • URL: https://claude-context-mcp.arda-cards.workers.dev/mcp
    • Authentication: Bearer token
    • Token: your URL-safe Base64-encoded token
  3. Add the system prompt below to the Project

With 1Password (recommended) — add to ~/.claude/settings.json under mcpServers:

{
"claude-context": {
"command": "/bin/sh",
"args": [
"-c",
"TOKEN=$(op read 'op://Private/GitHub Personal Access Token/base64-url-safe') && npx mcp-remote https://claude-context-mcp.arda-cards.workers.dev/mcp --header \"Authorization: Bearer $TOKEN\""
]
}
}

Without 1Password — add to ~/.claude/mcp.json:

{
"mcpServers": {
"claude-context": {
"url": "https://claude-context-mcp.arda-cards.workers.dev/mcp",
"headers": {
"Authorization": "Bearer <your-URL-safe-Base64-encoded-token>"
}
}
}
}

Add this to claude.ai Projects that should use the MCP server:

You have access to a Claude context MCP server with skills, agent profiles,
and project documentation.
For any task involving file creation or technical implementation (docx, pptx,
pdf, spreadsheets, code, frontend components, etc.): call list_skills, then
get_skill for the relevant skill and follow its instructions before proceeding.
When asked to take on a specialist role, or when a task would benefit from one:
call list_agents to see available profiles, then get_agent to load and adopt
the appropriate persona.
When you need context about system architecture, requirements, or design
decisions: call list_docs to see what documentation is available, then
get_doc with the relevant path array to fetch the content.
If content seems stale, use skipCache: true on get_* calls to fetch fresh.

Add to claude.ai memory so the server is used across all conversations:

I have a Claude context MCP server connected with skills, agent profiles, and
project documentation. For implementation tasks, always call list_skills and
get_skill before starting. When taking on a specialist role, call list_agents
and get_agent. When needing architecture or requirements context, call
list_docs and get_doc. Use skipCache: true if content seems outdated.

The bundled indexes (list_* tools) are rebuilt on three triggers:

TriggerWhen
Push to mainAny change to the MCP server code
Saturday 00:00 PacificWeekly rebuild picks up skill, agent, and doc changes from source repositories
Manual dispatchOn-demand via GitHub Actions workflow

A newly added skill or doc page will not appear in list_* results until the next rebuild. Use get_skill or get_doc directly if you know the name — those always fetch live from GitHub.

Arda-cards/skills-mcp — contains the Worker source, build scripts, tests, CI/CD, and the full README with operator setup instructions.


Copyright: (c) Arda Systems 2025-2026, All rights reserved