get_guide
Get the content of a specific coding guide.
guide_namerequired
io.github.delianPublished by GitHub account delianv0.1.0Updated Oct 24, 2026
Coding guidelines and best-practice guides for 130+ languages, frameworks, and tools.
Serves coding guidelines and best-practice guides for 130+ languages, frameworks and tools so an assistant can look up style rules while coding.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.delian%2Fcodeguide-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"coding-guides": {
"type": "http",
"url": "https://codeguide-mcp-86057491046.europe-west1.run.app/mcp"
}
}
}A Model Context Protocol (MCP) server that provides access to coding guides and best practices for AI assistants like Claude and GitHub Copilot.
This MCP server exposes coding guidelines and style guides as resources that can be accessed by MCP clients. It's designed to extend or replace AGENTS.md files by providing a structured way to serve coding practices and guidelines to AI assistants during development.
mcp SDK (MCPServer, formerly FastMCP)guides://list - Lists all available coding guidesguides://{guide_name} - Retrieves the content of a specific guide (e.g., guides://python.md)Or search for codeguide-mcp in the Extensions view MCP servers list (type @mcp in the Extensions search bar), or add it manually to .vscode/mcp.json:
Configure the server by creating a config.toml file or setting environment variables:
To load guides from a GitHub repository:
To use local guides only:
GUIDES_GITHUB_REPO - GitHub repository (format: owner/repo)GUIDES_GITHUB_PATH - Path to guides directory in repository (default: guides)GUIDES_GITHUB_BRANCH - Branch to fetch from (default: main)GUIDES_CACHE_DIR - Local cache directory (default: .guides-cache)GUIDES_DIR - Local directory containing guide files (default: guides)GUIDES_LOG_LEVEL - Logging level (default: INFO)Transport (see Remote deployment):
GUIDES_TRANSPORT - stdio, streamable-http, or auto (default: auto — HTTP when a PORT env var is present, stdio otherwise)PORT - Port to listen on in HTTP mode; takes precedence over GUIDES_PORT (Cloud Run injects this)GUIDES_HOST - Bind address in HTTP mode (default: 0.0.0.0)GUIDES_HTTP_PATH - MCP endpoint path (default: /mcp)GUIDES_STATELESS_HTTP - Handle each request independently (default: true; required when replicas autoscale)GUIDES_ALLOWED_HOSTS - Host header allowlist enabling DNS-rebinding protection (default: empty = no Host validation)guides_dir if configuredThe same image serves both transports: it speaks stdio over a pipe by default,
and switches to Streamable HTTP when a PORT env var is present — which Cloud Run
always injects. No separate image or entrypoint is needed.
GUIDES_GITHUB_REPO= (empty) makes the service serve the guides baked into the
image. Leaving GitHub enabled adds a network round-trip per guide and runs into
the unauthenticated GitHub API limit of 60 requests/hour per egress IP, after
which the server silently falls back to those same baked-in files anyway.
The MCP endpoint is then https://<service-url>/mcp:
Cloud Run answers on two hostnames for the same service — the
SERVICE-PROJECTNUMBER.REGION.run.app form printed by gcloud run deploy, and
the older SERVICE-HASH-REGIONCODE.a.run.app form that status.url reports.
Both are equivalent; either works in a client config.
See Connecting to a remote server below for the per-client configuration.
Cloud Run deploys public Docker Hub images directly, but caches them for only an hour and re-pulls anonymously afterwards, so a scale-up can hit Docker Hub's anonymous pull limits and fail to start instances. For anything beyond casual use, mirror through an Artifact Registry remote repository:
--allow-unauthenticated makes the endpoint world-callable. The server is
read-only, but the clear_cache prompt is reachable by any caller and drops
the in-memory caches, and traffic drives autoscaling cost — keep
--max-instances capped. To restrict access, omit the flag and have clients
send an identity token, or front the service with Cloud Armor / API Gateway.GUIDES_STATELESS_HTTP must stay true unless you also enable session
affinity, since Cloud Run may route a session's requests to different instances.GET / returns 404 by design; only /mcp is served. Cloud Run's default
startup probe is a TCP check on $PORT, so this is fine — don't configure an
HTTP health check on /.GUIDES_ALLOWED_HOSTS to your service hostname to enable Host-header
validation if you expose the service under a custom domain.The MCP servers list in the VS Code Extensions view (type @mcp in the search
bar) is fed by the GitHub MCP Registry, which ingests from the official
MCP Registry. Publishing there is
therefore how this server becomes discoverable in VS Code — no VS Code extension
of its own is required.
server.json holds the registry metadata: the Docker image for
clients that want to run it locally, and the hosted URL for clients that would
rather not. Ownership of the image is proven by the
io.modelcontextprotocol.server.name label in the Dockerfile,
whose value must equal .name in server.json.
Authenticate once (an interactive device-code flow), then run the publish script:
tools/publish.sh does the whole release: it checks the
required tooling and Docker login, verifies that server.json and
pyproject.toml agree on the version and that the Dockerfile label matches the
server name, builds and pushes :VERSION and :latest, validates server.json
against the live registry, publishes, then reads the entry back to confirm.
Install mcp-publisher from the
registry quickstart if
you do not have it. After publishing, inclusion in GitHub's curated list may
need a request to [email protected].
If you've configured github_repo, simply add Markdown files to the specified directory in your GitHub repository. The server will automatically fetch and cache them.
Add Markdown files to the guides/ directory. Each file will be automatically available as a resource.
Example:
The server can be consumed two ways:
Local mode needs no network and no hosting; remote mode lets a team share one deployment and keeps the guides identical for everyone.
A deployed instance exposes its MCP endpoint at /mcp. The snippets below use the
reference deployment:
It is public and needs no credentials. Substitute your own URL if you run the service yourself — see Remote deployment.
VS Code — .vscode/mcp.json for one workspace, or your user mcp.json for
every workspace:
Claude Code:
Cursor — ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):
Claude Desktop — add it as a custom connector in Settings, or bridge the
remote endpoint into a stdio client with
mcp-remote:
Any client that speaks Streamable HTTP works — point it at the /mcp URL.
For servers behind authentication, pass a token with
--header "Authorization: Bearer $(gcloud auth print-identity-token)"
(Claude Code) or the client's equivalent headers block.
A single curl confirms a deployment is live and public:
A healthy server replies with an SSE event: message frame containing its
capabilities and instructions. Note that GET / returns 404 by design — only
/mcp is served.
To exercise every resource, tool, and prompt over HTTP instead:
Add to your mcp.json:
or
Run the server and connect via stdio:
MIT
Contributions welcome! Please open an issue or pull request.
Source: README.md at commit ffc9927
Get the content of a specific coding guide.
guide_namerequired90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare a license in the repository or the registry entry.
# Clone the repositorygit clone https://github.com/delian/codeguide-mcp.gitcd codeguide-mcp
# Install with uv (recommended)uv sync
# Or with pippip install -e .docker build -t codeguide-mcp .docker run -i codeguide-mcp{ "servers": { "codeguide-mcp": { "command": "docker", "args": ["run", "-i", "--rm", "delian/codeguide-mcp"] } }}github_repo = "owner/repository" # e.g., "delian/codeguide-mcp"github_path = "guides" # Path to guides directory in repogithub_branch = "main" # Branch to fetch from cache_dir = ".guides-cache" # Local cache directorylog_level = "INFO"guides_dir = "guides"log_level = "INFO"docker build -t delian/codeguide-mcp:0.1.0 -t delian/codeguide-mcp:latest .docker push delian/codeguide-mcp:0.1.0docker push delian/codeguide-mcp:latestgcloud 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=40gcloud run services describe codeguide-mcp --region=europe-west1 \ --format='value(status.url)'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 \ ...mcp-publisher login github # namespace io.github.<your-username>/*tools/publish.shtools/publish.sh --dry-run # everything except push and publishtools/publish.sh --version 0.2.0 # bump server.json + pyproject + image tag, then releasetools/publish.sh --skip-build # reuse images already on Docker Hubecho "# Python Style Guide\n\nUse PEP 8..." > guides/python.mdhttps://codeguide-mcp-86057491046.europe-west1.run.app/mcp{ "servers": { "codeguide-mcp": { "type": "http", "url": "https://codeguide-mcp-86057491046.europe-west1.run.app/mcp" } }}claude mcp add --transport http codeguide-mcp \ https://codeguide-mcp-86057491046.europe-west1.run.app/mcp{ "mcpServers": { "codeguide-mcp": { "url": "https://codeguide-mcp-86057491046.europe-west1.run.app/mcp" } }}{ "mcpServers": { "codeguide-mcp": { "command": "npx", "args": ["-y", "mcp-remote", "https://codeguide-mcp-86057491046.europe-west1.run.app/mcp"] } }}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"}}}'uv run python verify_server.py --http https://codeguide-mcp-86057491046.europe-west1.run.app/mcp{ "mcpServers": { "coding-guides": { "command": "python", "args": ["-m", "main"] } }}{ "mcpServers": { "coding-guides": { "command": "docker", "args": ["run", "--rm", "-i", "docker.io/delian/codeguide-mcp"] } }}python main.py# Install development dependenciesuv pip install -e ".[dev]"
# Run pre-commit hookspre-commit installpre-commit run --all-files
# Run the serverpython main.py