Sovereign AI MCP
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
MCP 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)
Why use it
Training data on niche hardware (GB10, SM121A, SGLang on ARM64) is sparse and stale. This MCP gives agents direct, structured access to 180+ 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.
Tools
| 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_articles(tag?, sort?, limit?, offset?) | Direct article listing with pagination, no TF-IDF overhead. Filter by tag, sort by date_desc, date_asc, title_asc, or quality_desc. Returns ArticleSummary items. |
| 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.
Quick start
With Claude Code
Verify:
With Cline / Continue / other MCP clients
Add to your client's MCP server config:
Run locally
From source (uv)
Docker
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.