{"owner":"modelcontextprotocol","repo":"servers","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"files":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code when working with code in this repository.\n\n## Project Overview\n\nOfficial MCP reference server implementations. This is an npm workspaces monorepo containing 7 servers (4 TypeScript, 3 Python) under `src/`. Each server is a standalone package published to npm or PyPI.\n\n## Monorepo Structure\n\n```\nsrc/\n  everything/          TS  @modelcontextprotocol/server-everything    (reference server, all MCP features)\n  filesystem/          TS  @modelcontextprotocol/server-filesystem    (file operations with Roots access control)\n  memory/              TS  @modelcontextprotocol/server-memory        (knowledge graph persistence)\n  sequentialthinking/  TS  @modelcontextprotocol/server-sequential-thinking  (step-by-step reasoning)\n  fetch/               Py  mcp-server-fetch                           (web content fetching)\n  git/                 Py  mcp-server-git                             (git repository operations)\n  time/                Py  mcp-server-time                            (timezone queries and conversion)\n```\n\n## Build & Test Commands\n\n### TypeScript servers\n\n```bash\n# Single server\ncd src/<server> && npm ci && npm run build && npm test\n\n# All TS servers from root\nnpm install && npm run build\n```\n\n- Build: `tsc` (target ES2022, module Node16, strict mode)\n- Tests: **vitest** with `@vitest/coverage-v8` (required for new tests)\n- Node version: **22**\n\n### Python servers\n\n```bash\ncd src/<server> && uv sync --frozen --all-extras --dev\n\n# Run tests (if tests/ or test/ directory exists)\nuv run pytest\n\n# Type checking\nuv run pyright\n\n# Linting\nuv run ruff check .\n```\n\n- Build system: **hatchling** (`uv build`)\n- Package manager: **uv** (not pip)\n- Python version: **>= 3.10** (per-server `.python-version` file)\n- Type checking: **pyright** (enforced in CI)\n- Linting: **ruff**\n\n## Code Style\n\n### TypeScript\n\n- ES modules with `.js` extension in import paths\n- Strict TypeScript typing for all functions and variables\n- Zod schemas for tool input validation\n- 2-space indentation, trailing commas in multi-line objects\n- camelCase for variables/functions, PascalCase for types/classes, UPPER_CASE for constants\n- kebab-case for file names and registered tools/prompts/resources\n- Verb-first tool names (e.g., `get-file-info`, not `file-info`)\n- Imports grouped: external first, then internal\n\n### Python\n\n- Type hints enforced via pyright\n- Async/await patterns (especially in fetch server with pytest-asyncio)\n- Follow existing module layout per server\n\n## Contributing Guidelines\n\n**Accepted:** Bug fixes, usability improvements, enhancements demonstrating MCP protocol features (Resources, Prompts, Roots -- not just Tools).\n\n**Selective:** New features outside a server's core purpose or highly opinionated additions.\n\n**Not accepted:** New server implementations (use the [MCP Server Registry](https://github.com/modelcontextprotocol/registry)), README server listing changes.\n\n## CI/CD Pipeline\n\nBoth TypeScript and Python workflows use **dynamic package detection** (find + jq matrix strategy):\n\n1. `detect-packages` -- finds all `package.json` / `pyproject.toml` under `src/`\n2. `test` -- runs tests per package\n3. `build` -- compiles and type-checks per package\n4. `publish` -- on release events only (npm for TS, PyPI trusted publishing for Python)\n\n## MCP Protocol Reference\n\nThe repo is configured with an MCP docs server (`.mcp.json`) pointing to `https://modelcontextprotocol.io/mcp`. For schema details, reference `https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/schema` which contains versioned schemas in JSON and TypeScript formats.\n\n## Key Patterns\n\n- Each server registers capabilities via `registerTools(server)`, `registerResources(server)`, `registerPrompts(server)` functions\n- Tool annotations: set `readOnlyHint`, `idempotentHint`, `destructiveHint` per MCP spec\n- Transport support: stdio (default), SSE (deprecated), Streamable HTTP\n- All PRs are reviewed against the [PR template](.github/pull_request_template.md) checklist -- ensure MCP docs are read, security best practices followed, and changes tested with an LLM client\n"}}