codeguide-mcp
Coding Guides MCP Server
Ein Model-Context-Protocol-Server (MCP), der Zugriff auf Coding-Guides und Best Practices für KI-Assistenten wie Claude und GitHub Copilot bietet.
Was ist das?
Dieser MCP-Server stellt Codierungsrichtlinien und Styleguides als Ressourcen bereit, auf die MCP-Clients zugreifen können. Er wurde entwickelt, um AGENTS.md-Dateien zu erweitern oder zu ersetzen, indem er eine strukturierte Möglichkeit bietet, Coding-Praktiken und Richtlinien während der Entwicklung an KI-Assistenten auszuliefern.
Related MCP server: Code Understanding MCP Server
Funktionen
Ressourcenbasierte API: Stellt Coding-Guides über MCP-Ressourcen bereit
GitHub-Integration: Lädt Guides aus GitHub-Repositories über das Web
Automatisches Caching: Speichert heruntergeladene Guides lokal für den Offline-Zugriff
Fallback-Unterstützung: Verwendet lokalen Cache oder Verzeichnis, wenn das Netzwerk nicht verfügbar ist
Einfache dateibasierte Speicherung: Guides können lokal als Markdown-Dateien gespeichert werden
Offizielles MCP-SDK: Basiert auf dem Python-
mcp-SDK (MCPServer, ehemals FastMCP)Einfache Integration: Funktioniert mit jedem MCP-kompatiblen Client (Claude Desktop, Cline usw.)
Verfügbare Ressourcen
guides://list– Listet alle verfügbaren Coding-Guides aufguides://{guide_name}– Ruft den Inhalt eines bestimmten Guides ab (z. B.guides://python.md)
Installation
Aus dem Quellcode
# Clone the repository
git clone https://github.com/delian/codeguide-mcp.git
cd codeguide-mcp
# Install with uv (recommended)
uv sync
# Or with pip
pip install -e .Mit Docker
docker build -t codeguide-mcp .
docker run -i codeguide-mcpIn VS Code
Oder suchen Sie in der MCP-Serverliste der Extensions-Ansicht nach codeguide-mcp (geben Sie @mcp in die Extensions-Suchleiste ein) oder fügen Sie es manuell zu .vscode/mcp.json hinzu:
{
"servers": {
"codeguide-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "delian/codeguide-mcp"]
}
}
}Konfiguration
Konfigurieren Sie den Server, indem Sie eine config.toml-Datei erstellen oder Umgebungsvariablen festlegen:
GitHub-Konfiguration (empfohlen)
Um Guides aus einem GitHub-Repository zu laden:
github_repo = "owner/repository" # e.g., "delian/codeguide-mcp"
github_path = "guides" # Path to guides directory in repo
github_branch = "main" # Branch to fetch from
cache_dir = ".guides-cache" # Local cache directory
log_level = "INFO"Konfiguration des lokalen Verzeichnisses
Um nur lokale Guides zu verwenden:
guides_dir = "guides"
log_level = "INFO"Umgebungsvariablen
GUIDES_GITHUB_REPO– GitHub-Repository (Format:owner/repo)GUIDES_GITHUB_PATH– Pfad zum Guides-Verzeichnis im Repository (Standard:guides)GUIDES_GITHUB_BRANCH– Abzurufender Branch (Standard:main)GUIDES_CACHE_DIR– Lokales Cache-Verzeichnis (Standard:.guides-cache)GUIDES_DIR– Lokales Verzeichnis mit Guide-Dateien (Standard:guides)GUIDES_LOG_LEVEL– Protokollierungsstufe (Standard:INFO)
Transport (siehe Remote-Bereitstellung):
GUIDES_TRANSPORT–stdio,streamable-httpoderauto(Standard:auto– HTTP, wenn einePORT-Umgebungsvariable vorhanden ist, andernfalls stdio)PORT– Port, auf dem im HTTP-Modus gelauscht wird; hat Vorrang vorGUIDES_PORT(Cloud Run injiziert diesen)GUIDES_HOST– Bind-Adresse im HTTP-Modus (Standard:0.0.0.0)GUIDES_HTTP_PATH– MCP-Endpunktpfad (Standard:/mcp)GUIDES_STATELESS_HTTP– Jede Anfrage unabhängig behandeln (Standard:true; erforderlich, wenn Replikate automatisch skaliert werden)GUIDES_ALLOWED_HOSTS– Host-Header-Allowlist, die DNS-Rebinding-Schutz ermöglicht (Standard: leer = keine Host-Validierung)
Verhalten
Netzwerk verfügbar + GitHub konfiguriert: Ruft Guides von GitHub ab und speichert sie lokal zwischen
Netzwerk nicht verfügbar: Verwendet lokalen Cache, falls verfügbar
Kein Cache verfügbar: Fällt auf das lokale
guides_dirzurück, falls konfiguriert
Remote-Bereitstellung (Google Cloud Run)
Dasselbe Image bedient beide Transporte: Es spricht standardmäßig stdio über eine Pipe und wechselt zu Streamable HTTP, wenn eine PORT-Umgebungsvariable vorhanden ist – die Cloud Run immer injiziert. Es ist kein separates Image oder Entrypoint erforderlich.
1. Image veröffentlichen
docker build -t delian/codeguide-mcp:0.1.0 -t delian/codeguide-mcp:latest .
docker push delian/codeguide-mcp:0.1.0
docker push delian/codeguide-mcp:latest2. Bereitstellen
gcloud run deploy codeguide-mcp \
--image=docker.io/delian/codeguide-mcp:0.1.0 \
--region=europe-west1 \
--allow-unauthenticated \
--port=8080 \
--set-env-vars=GUIDES_TRANSPORT=streamable-http,GUIDES_GITHUB_REPO= \
--memory=512Mi --cpu=1 \
--min-instances=0 --max-instances=4 --concurrency=40GUIDES_GITHUB_REPO= (leer) bewirkt, dass der Dienst die im Image enthaltenen Guides ausliefert. Wenn GitHub aktiviert bleibt, entsteht pro Guide ein Netzwerk-Roundtrip und die unauthentifizierte GitHub-API-Beschränkung von 60 Anfragen/Stunde pro Egress-IP wird erreicht, woraufhin der Server stillschweigend auf dieselben eingebetteten Dateien zurückfällt.
Der MCP-Endpunkt ist dann https://<service-url>/mcp:
gcloud run services describe codeguide-mcp --region=europe-west1 \
--format='value(status.url)'Cloud Run antwortet auf zwei Hostnamen für denselben Dienst – die von gcloud run deploy ausgegebene Form SERVICE-PROJECTNUMBER.REGION.run.app und die ältere Form SERVICE-HASH-REGIONCODE.a.run.app, die status.url meldet. Beide sind gleichwertig; beide funktionieren in einer Client-Konfiguration.
3. Clients darauf ausrichten
Siehe Verbinden mit einem Remote-Server unten für die client-spezifische Konfiguration.
Von Docker Hub abrufen
Cloud Run stellt öffentliche Docker-Hub-Images direkt bereit, speichert sie aber nur eine Stunde zwischen und zieht sie danach anonym erneut ab. Bei einer Skalierung kann daher das anonyme Pull-Limit von Docker Hub erreicht werden und Instanzen können nicht gestartet werden. Für alles über den gelegentlichen Gebrauch hinaus spiegeln Sie das Image über ein Remote-Repository in Artifact Registry:
gcloud artifacts repositories create dockerhub \
--repository-format=docker --location=europe-west1 \
--mode=remote-repository --remote-docker-repo=DOCKER-HUB
gcloud run deploy codeguide-mcp \
--image=europe-west1-docker.pkg.dev/PROJECT_ID/dockerhub/delian/codeguide-mcp:0.1.0 \
...Hinweise zum öffentlichen Betrieb
--allow-unauthenticatedmacht den Endpunkt weltweit aufrufbar. Der Server ist schreibgeschützt, aber derclear_cache-Prompt ist für jeden Aufrufer erreichbar und verwirft die In-Memory-Caches, und der Datenverkehr treibt die Autoskalierungskosten in die Höhe – halten Sie--max-instancesbegrenzt. Um den Zugriff einzuschränken, lassen Sie das Flag weg und lassen Sie Clients ein Identitätstoken senden, oder stellen Sie den Dienst hinter Cloud Armor / API Gateway.GUIDES_STATELESS_HTTPmusstruebleiben, es sei denn, Sie aktivieren auch Sitzungsaffinität, da Cloud Run die Anfragen einer Sitzung auf verschiedene Instanzen verteilen kann.GET /gibt absichtlich 404 zurück; nur/mcpwird bedient. Der Standard-Startprobe von Cloud Run ist ein TCP-Check auf$PORT, das ist also in Ordnung – konfigurieren Sie keinen HTTP-Health-Check auf/.Setzen Sie
GUIDES_ALLOWED_HOSTSauf Ihren Diensthostnamen, um die Host-Header-Validierung zu aktivieren, wenn Sie den Dienst unter einer benutzerdefinierten Domain bereitstellen.
Veröffentlichung im MCP-Registry
Die MCP-Serverliste in der VS-Code-Extensions-Ansicht (geben Sie @mcp in die Suchleiste ein) wird vom GitHub-MCP-Registry gespeist, das aus dem offiziellen MCP-Registry übernimmt. Die Veröffentlichung dort ist daher der Weg, wie dieser Server in VS Code auffindbar wird – eine eigene VS-Code-Erweiterung ist nicht erforderlich.
server.json enthält die Registry-Metadaten: das Docker-Image für Clients, die es lokal ausführen möchten, und die gehostete URL für Clients, die das nicht möchten. Der Besitz des Images wird durch das Label io.modelcontextprotocol.server.name im Dockerfile nachgewiesen, dessen Wert muss gleich .name in server.json sein.
Authentifizieren Sie sich einmal (ein interaktiver Device-Code-Flow) und führen Sie dann das Veröffentlichungsskript aus:
mcp-publisher login github # namespace io.github.<your-username>/*
tools/publish.shtools/publish.sh erledigt die gesamte Veröffentlichung: Es prüft die erforderlichen Tools und den Docker-Login, verifiziert, dass server.json und pyproject.toml in der Version übereinstimmen und dass das Dockerfile-Label mit dem Servernamen übereinstimmt, baut und pusht :VERSION und :latest, validiert server.json gegen das Live-Registry, veröffentlicht und liest den Eintrag zur Bestätigung zurück.
tools/publish.sh --dry-run # everything except push and publish
tools/publish.sh --version 0.2.0 # bump server.json + pyproject + image tag, then release
tools/publish.sh --skip-build # reuse images already on Docker HubInstallieren Sie mcp-publisher aus dem Registry-Quickstart, falls Sie es nicht haben. Nach der Veröffentlichung kann die Aufnahme in die kuratierte Liste von GitHub eine Anfrage an partnerships@github.com erfordern.
Hinzufügen von Guides
Verwenden von GitHub (empfohlen)
Wenn Sie github_repo konfiguriert haben, fügen Sie einfach Markdown-Dateien zum angegebenen Verzeichnis in Ihrem GitHub-Repository hinzu. Der Server ruft sie automatisch ab und speichert sie zwischen.
Verwenden eines lokalen Verzeichnisses
Fügen Sie Markdown-Dateien zum Verzeichnis guides/ hinzu. Jede Datei ist automatisch als Ressource verfügbar.
Beispiel:
echo "# Python Style Guide\n\nUse PEP 8..." > guides/python.mdVerwendung mit MCP-Clients
Der Server kann auf zwei Arten verwendet werden:
Modus | Transport | Wie der Client ihn erreicht |
Lokal | stdio | Client startet |
Remote | Streamable HTTP | Client stellt HTTPS-Anfragen an eine gehostete |
Der lokale Modus benötigt kein Netzwerk und kein Hosting; der Remote-Modus ermöglicht es einem Team, eine Bereitstellung zu teilen und hält die Guides für alle identisch.
Verbinden mit einem Remote-Server
Eine bereitgestellte Instanz stellt ihren MCP-Endpunkt unter /mcp bereit. Die folgenden Ausschnitte verwenden die Referenzbereitstellung:
https://codeguide-mcp-86057491046.europe-west1.run.app/mcpSie ist öffentlich und benötigt keine Anmeldeinformationen. Ersetzen Sie sie durch Ihre eigene URL, wenn Sie den Dienst selbst betreiben – siehe Remote-Bereitstellung.
VS Code – .vscode/mcp.json für einen Arbeitsbereich oder Ihre Benutzer-mcp.json für alle Arbeitsbereiche:
{
"servers": {
"codeguide-mcp": {
"type": "http",
"url": "https://codeguide-mcp-86057491046.europe-west1.run.app/mcp"
}
}
}Claude Code:
claude mcp add --transport http codeguide-mcp \
https://codeguide-mcp-86057491046.europe-west1.run.app/mcpCursor – ~/.cursor/mcp.json (global) oder .cursor/mcp.json (pro Projekt):
{
"mcpServers": {
"codeguide-mcp": {
"url": "https://codeguide-mcp-86057491046.europe-west1.run.app/mcp"
}
}
}Claude Desktop – Fügen Sie es als benutzerdefinierten Connector in den Einstellungen hinzu oder überbrücken Sie den Remote-Endpunkt in einen stdio-Client mit mcp-remote:
{
"mcpServers": {
"codeguide-mcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://codeguide-mcp-86057491046.europe-west1.run.app/mcp"]
}
}
}Jeder Client, der Streamable HTTP spricht, funktioniert – richten Sie ihn auf die /mcp-URL. Für Server hinter Authentifizierung übergeben Sie ein Token mit --header "Authorization: Bearer $(gcloud auth print-identity-token)" (Claude Code) oder den entsprechenden headers-Block des Clients.
Überprüfen eines Remote-Endpunkts
Ein einzelnes curl bestätigt, dass eine Bereitstellung live und öffentlich ist:
curl -s -X POST https://codeguide-mcp-86057491046.europe-west1.run.app/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
"protocolVersion":"2025-06-18","capabilities":{},
"clientInfo":{"name":"curl","version":"1"}}}'Ein gesunder Server antwortet mit einem SSE-event: message-Frame, der seine Fähigkeiten und Anweisungen enthält. Beachten Sie, dass GET / absichtlich 404 zurückgibt – nur /mcp wird bedient.
Um stattdessen jede Ressource, jedes Tool und jeden Prompt über HTTP zu testen:
uv run python verify_server.py --http https://codeguide-mcp-86057491046.europe-west1.run.app/mcpLokale Verwendung
Claude Desktop
Fügen Sie zu Ihrer mcp.json hinzu:
{
"mcpServers": {
"coding-guides": {
"command": "python",
"args": ["-m", "main"]
}
}
}oder
{
"mcpServers": {
"coding-guides": {
"command": "docker",
"args": ["run", "--rm", "-i", "docker.io/delian/codeguide-mcp"]
}
}
}Andere MCP-Clients
Führen Sie den Server aus und verbinden Sie sich über stdio:
python main.pyEntwicklung
# Install development dependencies
uv pip install -e ".[dev]"
# Run pre-commit hooks
pre-commit install
pre-commit run --all-files
# Run the server
python main.pyLizenz
MIT
Mitwirken
Beiträge sind willkommen! Bitte öffnen Sie ein Issue oder einen Pull-Request.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- AlicenseAqualityDmaintenanceAn intelligent MCP server that serves as a guardian of development knowledge, providing AI assistants with curated access to latest documentation and best practices.4605MIT
- AlicenseCqualityDmaintenanceAn MCP server that analyzes local or remote GitHub repositories, providing intelligent code context and structure to AI coding assistants.1013MIT
- AlicenseNot gradedqualityBmaintenanceA local MCP server that gives AI coding assistants retrieval access to your personal knowledge base of books, standards, and docs, grounding their answers in sources you trust.MIT
- AlicenseNot gradedqualityDmaintenanceThis MCP server provides access to resources and prompts from GitHub repositories or the local filesystem, enabling teams to share coding standards, documentation, and reusable prompts with AI tools like Claude.3581MIT
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/delian/codeguide-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server