SystemDox MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SYSTEMDOX_API_KEY | No | Your SystemDox API key. Used for authentication; in stdio mode, when not set, the server reads it from ~/.claude/systemdox/credentials.json. In hosted HTTP mode, send it as Authorization: Bearer <key>. | |
| SYSTEMDOX_API_URL | No | REST API base URL. | https://api.puglieseweb.com/systemdox |
| SYSTEMDOX_CACHE_TTL | No | Response cache TTL in seconds. | 300 |
| SYSTEMDOX_WORKSPACE | No | The workspace whose key to read when ~/.claude/systemdox/credentials.json holds several. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This computer has no SystemDox key it can use (none is stored), so the team's rules and skills cannot be read and every SystemDox tool fails. Tell the person once: npx -y @systemdox/mcp-server setup in their own terminal asks for one.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_checksB | Retrieve SystemDox checks (banned patterns, required patterns, coding rules). Filter by language, category, or file path to get only relevant checks. |
| get_guardrailsA | DEPRECATED — use |
| get_specsA | Retrieve SystemDox specifications (proposal, requirements with RFC 2119 keywords, Given/When/Then scenarios). Get a specific spec by ID, filter by status, or search by keyword. |
| get_docsA | Retrieve synced documentation from connected GitHub repositories. Filter by repo, file path pattern, or keyword search. Pass doc_id with section (a heading anchor) or chunk_id to retrieve just that section instead of the whole document. |
| get_tech_stackB | Retrieve the configured technology stack (languages, frameworks, databases, infrastructure) with versions and notes. |
| get_planning_contextB | Retrieve org-wide planning context: connected repos with summaries, cross-repo dependencies, ADRs, and active specs. Optionally focus on a target repo. |
| get_plan_boardA | Read the GitHub Projects boards connected to this workspace. With no arguments, lists the open boards with their item counts by status. With project_number, lists that board's issues grouped by status (In Progress / Todo / Done), each with issue number, title, repo, labels, assignees and URL — so you can see what is planned or in flight and pick up the right issue. Read-only: this tool cannot create, move, or close board items. |
| get_changeA | Read one change (a specs/changes// folder of a connected repository) as SystemDox last synced it from GitHub: the state of each part of its brief (decision, contract, behaviour, plan) and of its release, each with its pull request; the decision's ADR and status; the contract files; every feature file that names the change, with its scenarios as id · state · title; the plan (plan.md, the draft, the board); the release pull requests; and the Change object as JSON. The last line says "The brief is passed" or "The brief is not passed: is ". Call it before building a story, and stop if the brief is not passed or the story's scenarios are not proposed. Read-only. |
| get_contextA | Intelligent context aggregator: fetches checks, specs, docs, and tech stack, ranks them by relevance to your current task, and returns the full text of the highest-ranked items within a token budget — each with the ID needed to fetch the rest. Use this instead of calling individual tools when you want curated, relevant context. |
| get_project_rulesB | Retrieve project rules defined in SystemDox Standards. These are team-defined principles covering deployment, architecture, security, testing, and process. Filter by category to get only relevant rules. |
| get_prompt_templatesB | Retrieve reusable prompt templates from SystemDox Standards. These are preconfigured prompts that Gen AI should use when generating content — e.g. code review checklists, documentation templates, or analysis frameworks. |
| get_team_setupA | What this workspace's team setup holds (skills, plugin, hooks, MCP servers, memory) and what this computer lacks, with what to do about it. Call it to check whether this computer is set up. Reads only. |
| get_document_linksA | What one document links to and from, strongest first. Each link says how it is known: declared (a person made it), extracted (the file says so), or inferred (a reading that could be wrong), with a confidence and the file and line it came from. A reference that could mean several documents is listed as ambiguous with its candidates, and is never drawn as a link. doc_id is the id get_docs returns. Read-only. |
| trace_document_pathA | The shortest way two documents connect, walking links in either direction. Each step says how it is known, and the path is only as strong as its weakest step. Read-only. |
| get_graph_statsA | The state of the graph: links counted by how they are known, each repository's freshness (marked BEHIND when a push has not finished indexing), and how repositories depend on each other, from the files that declare it. Read-only. |
| create_checkA | Create a new check in SystemDox. Use this when you discover a pattern that should be enforced (banned pattern, required pattern, coding rule). |
| create_guardrailA | DEPRECATED — use |
| update_specA | Update an existing SystemDox spec's proposal, tasks, or requirements. Only draft specs can be modified — published specs must be versioned first. |
| report_decisionA | Record an architecture decision made during development. Creates a draft ADR in SystemDox for human review. |
| create_project_ruleB | Create a new project rule in SystemDox Standards. Use this when you discover a team principle or convention that should be enforced across the project. |
| create_prompt_templateB | Create a new reusable prompt template in SystemDox Standards. Use this to store preconfigured prompts for common AI tasks like code reviews, documentation generation, or analysis frameworks. |
| publish_skillA | Publish a Claude Code skill folder (SKILL.md plus its references and scripts) to SystemDox so it can be installed on any computer. Pass |
| list_skillsA | List the Claude Code skills published to SystemDox that you can install: name, description, latest version. Use install_skill to install one. |
| install_skillA | Install a skill published to SystemDox onto this computer (default ~/.claude/skills//). Refuses, naming the files, when a file there was edited since it was installed, unless overwrite is true. Never runs anything. |
| publish_setup_partA | Publish one part of your team's Claude Code setup to SystemDox: |
| resolve_personA | Read back a person that a team memory names by identifier, written as |
| sync_memoryA | Sync one project's team memory on this computer with SystemDox: pull the files the team changed, push the ones changed here, keep both texts of a file changed on both sides. It never answers for a person: a file that still holds a phone number, an email address or a home-folder path is skipped and listed, with the command for the member to run in their own terminal ( |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 27 tools
Most tools have clearly distinct targets: checks vs rules vs specs vs docs vs graph vs skills vs memory. The main ambiguities are the aggregator `get_context` (which overlaps the individual `get_*` retrievers, though its description explains the ranking/token-budget role) and `get_plan_board` vs `get_planning_context`, plus the explicitly-deprecated `get_guardrails`/`create_guardrail` aliases that duplicate `get_checks`/`create_check`.
Almost all tools follow a snake_case verb_noun pattern (get_*, create_*, publish_*, list_*, install_*, sync_*). The only deviations are the legacy `guardrail` names kept for compatibility, which still fit the pattern but add a second name for the same concept.
27 tools is above the comfortable range, and two are deprecated duplicates that inflate the count. The surface is genuinely broad (context retrieval, graph, checks, specs, skills, setup, memory), so the volume is partly justified, but several retrieval tools could be consolidated.
Read coverage is strong (tech stack, checks, specs, docs, graph, boards, team setup, memory) and writes exist for checks, rules, prompts, decisions, and spec updates. However, there is no update/delete for checks, rules, or prompt templates, no create/delete for specs (only update of drafts), and no way to unpublish skills or setup parts, leaving notable lifecycle gaps.