Exposes 60+ engineering articles from a self-hosted AI blog running on NVIDIA DGX Spark hardware (GB10/SM121A). You get four read-only tools: TF-IDF full-text search with optional tag filtering, a tag browser, article fetcher by slug, and a pattern-matching diagnostic for SGLang runtime errors. The corpus covers niche ground like SGLang and vLLM patches for GB10, ARM64 deployment quirks, KV-cache tuning, and podcast-quality TTS pipelines. Runs over Streamable HTTP via FastMCP with DNS rebinding protection. Reach for this when you're debugging similar hardware stacks and need version-current setup notes instead of stale LLM training data.
Public tool metadata for what this MCP can expose to an agent.
search_blogSearch the Sovereign AI Blog for articles matching a natural language query, optionally filtered by tag and sorted by relevance or date. Behaviour matrix: - query='', sort=* -> list newest-first, optionally tag-filtered - query!='', sort=relevance -> TF-IDF ranked, optionally...4 paramsSearch the Sovereign AI Blog for articles matching a natural language query, optionally filtered by tag and sorted by relevance or date. Behaviour matrix: - query='', sort=* -> list newest-first, optionally tag-filtered - query!='', sort=relevance -> TF-IDF ranked, optionally...
nintegertagvaluesortstringrelevance · date_descdefault: relevancequerystringget_articleRetrieve the full content of a blog article by its slug. Returns the article body (Markdown) plus metadata. If the slug does not match any article, returns an Article with `error='article_not_found'` and other fields at their defaults.1 paramsRetrieve the full content of a blog article by its slug. Returns the article body (Markdown) plus metadata. If the slug does not match any article, returns an Article with `error='article_not_found'` and other fields at their defaults.
slugstringdiagnose_sglangValidate an SGLang configuration for NVIDIA DGX Spark (GB10/SM121A). Pure pattern-matching against known failure modes documented in the Sovereign AI Blog. No inference, no external calls. Returns critical issues, non-fatal warnings, and a recommended baseline config. All para...6 paramsValidate an SGLang configuration for NVIDIA DGX Spark (GB10/SM121A). Pure pattern-matching against known failure modes documented in the Sovereign AI Blog. No inference, no external calls. Returns critical issues, non-fatal warnings, and a recommended baseline config. All para...
hardwarestringimage_tagstringmem_fractionnumbererror_messagestringattention_backendstringcuda_graph_max_bsintegerlist_tagsList all topic tags used across the Sovereign AI Blog corpus, with article counts. Use this to browse the topic space before calling search_blog with a tag filter.1 paramsList all topic tags used across the Sovereign AI Blog corpus, with article counts. Use this to browse the topic space before calling search_blog with a tag filter.
sortstringcount_desc · alphadefault: count_descMCP server exposing the Sovereign AI Blog to AI agents. The blog is a hands-on engineering log of self-hosted AI on NVIDIA DGX Spark (GB10/SM121A).
Live endpoint: https://mcp.sovgrid.org/self-hosted-ai
Transport: Streamable HTTP (FastMCP)
Auth: none (free tier, 60 req/min/IP)
Training data on niche hardware (GB10, SM121A, SGLang on ARM64) is sparse and stale. This MCP gives agents direct, structured access to 60+ articles documenting actual setups, fixes, and benchmarks. If you're building or debugging on similar stacks, your agent can pull verified, version-current information instead of hallucinating.
The corpus covers SGLang and vLLM patches for GB10, voxtral and TTS pipelines on ARM64, KV-cache and quantization tradeoffs, podcast-grade audio generation, MCP server design, knowledge-base construction, and the operational side of running it all on a hardened European VPS.
| Tool | Purpose |
|---|---|
search_blog(query, tag?, sort?, n?) | TF-IDF full-text search. Optional tag filter, sort by relevance or date_desc. Empty query lists newest articles. Returns ranked SearchResult items with quality score, style, slug, and excerpt. |
list_tags(sort?) | List all topic tags across the corpus with article counts. Sort by count_desc (default) or alpha. Use to discover the topic space before filtering search_blog. |
get_article(slug) | Fetch full article body and frontmatter by slug. Returns markdown content plus tags, quality score, publish date. |
diagnose_sglang(error_message) | Pattern-match a runtime error against a curated rule set for SGLang on GB10/SM121A. Returns matched fixes with links to setup articles. |
All tools are read-only, idempotent, and declared with ToolAnnotations so MCP clients can calibrate retry policy and trust signals. Inputs use Pydantic Annotated[type, Field(description=...)] so parameter docs reach agents through introspection. Outputs are typed BaseModel shapes — schemas are real, not vacuous dicts.
claude mcp add sovereign-ai --transport http https://mcp.sovgrid.org/self-hosted-ai
Verify:
claude mcp list | grep sovereign-ai
Add to your client's MCP server config:
{
"sovereign-ai": {
"type": "http",
"url": "https://mcp.sovgrid.org/self-hosted-ai"
}
}
git clone https://github.com/cipherfoxie/sovereign-mcp.git
cd sovereign-mcp
uv sync
uv run uvicorn src.main:app --host 127.0.0.1 --port 8002
git clone https://github.com/cipherfoxie/sovereign-mcp.git
cd sovereign-mcp
docker build -t sovereign-mcp .
docker run -p 8002:8002 sovereign-mcp
The repo ships a placeholder data/knowledge-base.json (zero articles, valid schema) so the server starts and answers MCP introspection cleanly out-of-the-box. To populate it with real content, generate from the sovgrid.org blog source using scripts/generate_knowledge_base.py, or build your own KB matching the schema in src/knowledge.py. Or just use the live endpoint at https://mcp.sovgrid.org/self-hosted-ai.
A walk-through of the same KB pattern (Markdown plus JSON index, no vector store) is documented in Build a Self-Hosted Knowledge Base with Plain Text and LLMs.
/self-hosted-aiTransportSecuritySettings: only allows requests with Host: mcp.sovgrid.org (or localhost for healthchecks)/health returns article count and KB generation timestampsearch_blogThe server is stateless. All blog content is already public (CC BY-SA 4.0). No PII, no auth tokens, no secrets.
Live deployment runs on a privacy-focused European VPS via Docker, fronted by Caddy with TLS. Server logs flow into a privacy-respecting analytics pipeline (Caddy JSON access logs, no client-side tracking, no JS pixels).
cipherfox@sovgrid.org (NIP-05) — npub1ndrjgfcwkc0y4753zyj3p7qjf795pvjq2dn4m7y7f72vmu7t0nrs6y363uio.github.infoinlet-marketplace/mcp-observability
betterdb-inc/monitor
com.mcparmory/datadog
thotischner/observability-mcp
io.github.tantiope/datadog-mcp
io.github.us-all/datadog