/user/kayd @ devops :~$ cat mcp-server.md

MCP Server MCP Server

QR Code linking to: MCP Server

Summary

🔌 MCP Server

This blog runs a public, read-only MCP (Model Context Protocol) server, so Claude and other AI clients can search, read and reason over its DevOps and AWS content directly — no copy-pasting.

Endpoint: https://karandeepsingh.ca/mcp Registry: io.github.karandaid/karandeepsingh-blog Auth: none — the content is public

⚡ Add it in one line

Claude Code

claude mcp add --transport http kayd https://karandeepsingh.ca/mcp

Claude app — Settings → Connectors → Add custom connector → paste the endpoint.

🔌 MCP Server

This blog runs a public, read-only MCP (Model Context Protocol) server, so Claude and other AI clients can search, read and reason over its DevOps and AWS content directly — no copy-pasting.

Endpoint: https://karandeepsingh.ca/mcp Registry: io.github.karandaid/karandeepsingh-blog Auth: none — the content is public

⚡ Add it in one line

Claude Code

claude mcp add --transport http kayd https://karandeepsingh.ca/mcp

Claude app — Settings → Connectors → Add custom connector → paste the endpoint.

Cursor~/.cursor/mcp.json

{
  "mcpServers": {
    "kayd": { "url": "https://karandeepsingh.ca/mcp" }
  }
}

VS Code / Copilot.vscode/mcp.json

{
  "servers": {
    "kayd": { "type": "http", "url": "https://karandeepsingh.ca/mcp" }
  }
}

ChatGPT — Settings → Connectors → add a custom MCP connector with the same URL.

Stdio-only clients — bridge it with mcp-remote:

{
  "mcpServers": {
    "kayd": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://karandeepsingh.ca/mcp"]
    }
  }
}

🏗 How it works

    flowchart LR
  C["🤖 Claude / Cursor / ChatGPT"] -->|"JSON-RPC over HTTPS"| M["⚡ /mcp<br/>serverless function"]
  M --> T["📇 mcp-index.json<br/>47 KB · metadata"]
  M --> F["📚 index.json<br/>full article text"]
  H["🏗 Hugo build"] --> T
  H --> F
  M --> R["🧰 9 tools<br/>📄 resources<br/>💬 4 prompts"]
  

A stateless MCP server running as a single serverless function on the same deploy as the site. Anything that only needs titles, tags and summaries reads a trimmed metadata index generated at build time (~47 KB); full article text is fetched only when something is actually read. No session state, no database, and no second thing to deploy — the server ships with the blog.

🧰 Tools

ToolWhat it does
🔍search_postsSearch articles and cheatsheets; returns title, URL, tags, date, reading time and summary. Optionally filter to posts or cheatsheets
📖read_postRead an article’s full text by URL, slug or title — paginated, with related links appended
📋get_cheatsheetJump straight to a cheatsheet by topic (docker, cloudformation, cost, aurora, …)
🗒list_cheatsheetsEvery quick-reference guide on the blog
🆕list_recentThe most recently published posts
🏷browse_by_tagPosts filtered by a tag
🗂list_topicsEvery tag with a post count, for discovery
🔗related_postsPosts sharing the most tags with a given post
🎲random_postA surprise pick

Every tool is annotated read-only, idempotent and non-destructive, so clients can safely allow them without prompting each time.

📄 Resources

Every article and cheatsheet is also exposed as an MCP resource, addressed by its real canonical URL:

https://karandeepsingh.ca/posts/{slug}/
https://karandeepsingh.ca/cheatsheets/{category}/{slug}/

That means a client can attach a specific article as context directly, without searching for it first. resources/list is cursor-paginated, and resource templates are published for both sections.

💬 Prompts

PromptWhat it does
🔬research_topicSearch, read the best matches, and answer grounded in the articles — with sources
quick_referencePull up the right cheatsheet and answer a specific question from it
⚖️compare_optionsWeigh two technologies against each other on cost and fit
📰whats_newSummarise the newest posts

🔒 Privacy & terms

No personal data is stored and no login is required. Requests may be logged by IP address solely to enforce rate limiting. See the Privacy Policy and Terms of Service. Support: karandaid@gmail.com.

Curious how it was built? I wrote it up in I Gave My Blog an MCP Server (and You Can Too).