self-hosted-ai
Server Details
Engineering log of self-hosted AI on NVIDIA DGX Spark (GB10/SM121A). 60+ articles indexed.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- cipherfoxie/sovereign-mcp
- GitHub Stars
- 3
- Server Listing
- Sovereign AI Blog
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.5/5 across 4 of 4 tools scored.
Each tool targets a distinct function: SGLang config diagnosis versus blog article browsing (search, list tags, get article). No overlap in purpose.
All tool names follow a consistent verb_noun pattern: diagnose_sglang, get_article, list_tags, search_blog.
With 4 tools, the count is within the well-scoped range (3-15). However, the server mixes two separate domains, making the scope slightly thin.
The blog tools cover reading needs (search, list tags, get article), but the SGLang diagnostic tool is a single operation with no update or management tools. For a 'self-hosted-ai' server, broader AI operations are missing.
Available Tools
4 toolsdiagnose_sglangARead-onlyIdempotentInspect
Validate 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 parameters are optional; supply only what you have. With no inputs you get the recommended config and a 'unknown' verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| hardware | No | Hardware description (e.g. 'GB10', 'DGX Spark', 'SM121A'). Empty = skip GB10-specific rules. | |
| image_tag | No | Docker image tag in use (e.g. 'lmsysorg/sglang:latest', 'lmsysorg/sglang:v0.4.0'). Empty = skip. | |
| mem_fraction | No | SGLang --mem-fraction-static value (e.g. 0.88). 0.0 = skip this check. | |
| error_message | No | Paste error log output here for pattern matching against known failure modes. | |
| attention_backend | No | SGLang --attention-backend value (e.g. 'flashinfer', 'triton'). Empty string = skip this check. | |
| cuda_graph_max_bs | No | SGLang --cuda-graph-max-bs value. 0 = skip this check. |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | Yes | Critical issues that will prevent SGLang from running correctly |
| verdict | Yes | Overall verdict. 'unknown' = no inputs provided. |
| warnings | Yes | Non-fatal warnings (suboptimal but non-blocking) |
| recommended_config | Yes | Verified-good baseline config for GB10/SM121A |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral context: 'Pure pattern-matching', 'No inference, no external calls', and the behavior with no inputs ('recommended config and a 'unknown' verdict'). This goes beyond the annotations and fully discloses the tool's non-invasive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action, then explains behavior and parameter optionality in a compact, scannable structure. Each sentence adds value: purpose, method/limitations, return value, and input flexibility. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 optional params, output schema present), the description is complete. It explains what the tool does, how it behaves (pattern-matching), what it returns (critical issues, non-fatal warnings, recommended baseline config), and edge-case behavior (no inputs). The output schema handles return details, so no further elaboration is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a meaningful description (e.g., 'Empty = skip this check'). The tool-level description adds only a general note that all parameters are optional, not per-parameter details. Baseline 3 is appropriate since the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Validate an SGLang configuration for NVIDIA DGX Spark (GB10/SM121A).' The verb 'Validate' plus the specific resource (SGLang config on specific hardware) distinguishes it from the sibling blog tools (get_article, list_tags, search_blog), which are unrelated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use: to validate a config against known failure modes. It explicitly explains constraints ('Pure pattern-matching... No inference, no external calls') and parameter optionality ('supply only what you have'). However, it does not explicitly state when not to use it or name an alternative, though no alternative is relevant among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articleARead-onlyIdempotentInspect
Retrieve 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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Article slug as returned by search_blog (e.g. 'setup-llm-inference-setup'). Lower-case, hyphenated. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | Public URL of the article |
| body | No | Full article body in Markdown |
| date | No | Publication date (ISO 8601) |
| slug | Yes | Article slug |
| tags | No | Topic tags assigned to the article |
| error | No | Set to 'article_not_found' if no article matches the slug |
| title | No | Article title |
| word_count | No | Word count of the article body |
| description | No | Short article description |
| quality_class | No | Editorial content class (e.g. 'Ephemeral', 'Evergreen'). Empty if not classified. |
| quality_score | No | Build-time quality score from the editorial pipeline (unbounded weighted composite across 13 signals, higher is better; thresholds depend on style) |
| quality_style | No | Editorial style category (e.g. 'best_practice_learnings', 'werthaltige_code_beispiele'). Empty if not categorised. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors beyond annotations: it returns the article body in Markdown plus metadata, and specifies the exact error behavior when a slug is not found (returns an Article with error='article_not_found' and defaults). This is valuable context that annotations (readOnlyHint, idempotentHint) do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero padding. The first sentence states the primary action, and the second covers edge-case behavior. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with an output schema, the description covers purpose, return content, and not-found behavior. It is fully sufficient for an agent to invoke correctly without requiring additional details about response structures or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage, including an example and format note for the slug. The description adds no additional parameter semantics beyond restating 'by its slug', so it cannot exceed the baseline of 3 for schema-heavy tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieve the full content of a blog article by its slug', using a specific verb and resource. It distinguishes itself from siblings like search_blog and list_tags by focusing on full-content retrieval for a single known article.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool vs alternatives. It does not mention that search_blog should be used first to obtain a slug, or that this tool is not for searching/listings. The only contextual hint is in the input schema, not the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsARead-onlyIdempotentInspect
List 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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Result ordering. 'count_desc' lists most-used tags first (default). 'alpha' sorts alphabetically. | count_desc |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, idempotent operation. The description adds valuable behavioral context by noting it lists 'all' tags (exhaustive) and includes article counts, which goes beyond the safety profile. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loaded with the primary purpose and followed by a concise usage directive. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only one optional parameter, an output schema is present, and annotations cover safety. The description explains what the tool does and when to use it, even suggesting a workflow with search_blog. This is fully complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers the only parameter (sort) 100%, including its enum and default value, so the tool description does not need to add parameter details. The description does not mention sort, but the schema fully handles it, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List all topic tags used across the Sovereign AI Blog corpus, with article counts,' specifying a clear verb (List), resource (topic tags), and scope (corpus). This distinguishes it from sibling tools like search_blog and get_article, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence provides explicit usage context: 'Use this to browse the topic space before calling search_blog with a tag filter.' It clearly directs when to use this tool and names the related alternative, making it easy for the agent to select appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_blogARead-onlyIdempotentInspect
Search 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 tag-filtered
- query!='', sort=date_desc -> TF-IDF filtered (score > 0.001), then sorted by date
Pure read-only, deterministic for a given KB snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Maximum number of results to return | |
| tag | No | Optional tag filter (e.g. 'setup', 'fixes', 'strategy'). Only articles with this tag are considered. Use list_tags to discover available tags. | |
| sort | No | Result ordering. 'relevance' uses TF-IDF score (default for non-empty query). 'date_desc' sorts newest first (default behaviour when query is empty). When query is empty, 'relevance' is treated as 'date_desc'. | relevance |
| query | No | Natural language search query (e.g. 'flashinfer OOM on GB10'). Multi-word queries are tokenized and TF-IDF ranked. Pass empty string to list articles without ranking by relevance. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial value beyond the annotations by stating 'Pure read-only, deterministic for a given KB snapshot' and detailing the exact ranking/filtering behavior, including the TF-IDF threshold of 0.001. This transparently discloses algorithm behavior and side-effect-free nature, complementing the readOnlyHint and idempotentHint annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact yet information-dense, using a clear behavior matrix to communicate complex conditional behavior in a highly scannable format. Every sentence and bullet adds value, with no redundant filler or repetition of annotation details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate tool complexity, the presence of a full input schema, output schema, and annotations, the description is sufficiently complete. The behavior matrix fully defines the query/sort/tag interaction space, so an agent can correctly select and invoke the tool without additional clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, baseline is 3. The description goes further by explaining how query and sort interact through the behavior matrix, clarifying that an empty query forces date ordering and that non-empty queries use TF-IDF scoring. This adds contextual semantics beyond the individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search the Sovereign AI Blog for articles', and clearly states the query, tag filtering, and sorting capabilities. This makes the tool's purpose immediately clear and distinguishes it from sibling tools like get_article and list_tags, which are not search-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The behavior matrix gives explicit conditional guidance for when to use different sort modes (e.g., empty query lists newest-first, non-empty query uses TF-IDF ranking). It also references list_tags in the schema for tag discovery, but the description itself does not mention when to prefer alternatives like get_article, so exclusions are not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Flicense-qualityAmaintenanceAn MCP server for monitoring and managing multi-cluster Slurm GPU jobs, enabling AI agents to execute commands, check allocations, and explore logs across HPC clusters.1
- AlicenseAqualityBmaintenanceDeterministic AI data-center design engine exposed as MCP tools for sizing, validation, and physical layout. Supports NVIDIA Hopper, Blackwell, and Vera Rubin with anonymous access to the remote engine.33MIT
- AlicenseBqualityAmaintenanceDual-memory MCP system with PostgreSQL 17 + pgvector + NVIDIA NIM embeddings. 11 tools: search, save, profile, health, auto-repair, stats, tune, dedup, checkpoint, maintenance. Sparse Selective Caching (SSC) with 4-phase progressive retrieval. Bilingual EN/ES.303MIT
- AlicenseAqualityAmaintenanceEnterprise-grade (40m+ lines) codebase intelligence in a zero-setup, private and local MCP: managed indexing, hybrid semantic search, polyglot code dependency graphs, and DB/API/infra knowledge. Benchmark: 61% less tokens, 84% fewer calls, 37x faster than standard AI grep.253,7493,247AGPL 3.0
Your Connectors
Sign in to create a connector for this server.