This server provides tools for HPC (High Performance Computing) and Kubernetes management, including database operations, filesystem operations, git operations, and Kubernetes resource management.
This MCP server provides 22 tools with reasonable structure but significant gaps in description quality and parameter annotation. Most tools have basic schemas visible in the code (database, git, kubernetes, filesystem categories), but descriptions vary widely in quality. The database and filesystem tools are well-documented with detailed context, while git and kubernetes tools have minimal descriptions. Average parameter descriptions are present but often generic. No tool annotations (readOnlyHint/destructiveHint) detected despite significant write operations. Error handling guidance is absent from descriptions. The server demonstrates domain competence (HPC/database/git/k8s integration) but falls short of production-grade LLM-optimized tooling.
Creates a new, isolated relational database with a custom schema defined by the agent. This is the primary setup tool. The agent defines the tables and columns. An 'id' column (autoincrementing integer primary key) is automatically added to every table for record identification.
Inserts a single row of data into a specific table within a managed database. Use this tool to record experimental results, metrics, or state transitions following the schema established during database creation.
Provides a technical summary of the tables and columns within a specific database. Use this tool to 're-discover' the schema if the context history is lost or to verify the structure before performing inserts or queries.
Executes a raw SQL SELECT query against a managed database. The agent has full read access to the tables it created. This allows for complex analytics, such as computing averages, filtering by performance metrics, or joining data.
Analyzes a JSON file and returns its schema (keys and types) without the data values. Use this tool to understand the hierarchy of large data files before using precision query tools. It helps identify where Figures of Merit (FOMs) are stored.
Git tool descriptions are severely underdeveloped. git_status, git_log, git_diff, git_add, git_commit, git_clone, git_init, and git_checkout lack context on WHEN to call them, error conditions, or expected output structure. Description text ranges from 20-60 chars vs baseline of 194 chars. LLMs cannot determine tool selection without better prose.
Kubernetes tools (kubectl_get, kubectl_describe, kubectl_label) lack sufficient description depth. Descriptions are 35-45 chars vs baseline 194 chars. Parameters like 'resource_type' and 'label_selector' lack actionable constraint hints ('e.g. app=nginx,tier=frontend' is in description but not formalized as enum or pattern). LLMs may pass invalid resource types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Lists the contents of a directory, providing metadata for each file and folder found. This tool is useful for exploring the filesystem and understanding the directory structure before performing file operations or data extraction.
Extracts a specific value from a JSON file using a dot-notation query path. This is the most efficient way to get specific data (like Figures of Merit) from large JSON files without loading the entire file into context.
Reads a chunk of a text file starting from a specific offset. Use this tool to inspect files that are too large to read in a single request. It returns metadata about remaining bytes to help you decide if more reads are needed.
Writes text content to a file, creating parent directories automatically. In sandbox mode, this tool is restricted to writing only within the HPCMCP_FILESYSTEM_RESULT_ROOT.
Adds file contents to the staging index.
Switches branches or restores working tree files.
Clones a repository into a new directory.
Clones a repository into a new temporary directory. This is safer than allowing a clone anywhere.
Records changes to the repository.
Show changes between commits, commit and working tree, etc. Default behavior shows unstaged changes.
Creates an empty Git repository or reinitializes an existing one.
Shows the commit logs. Useful for understanding the history of changes in the repository.
Shows the working tree status. Use this to see which files are staged, unstaged, or untracked.
Provides a human-readable, detailed description of a resource.
Retrieves information about Kubernetes resources.
Adds or updates labels on a Kubernetes resource.
Pauses execution for a specified duration synchronously. This tool is useful for introducing a wait period. Note that while the tool is sleeping, it will not block other server operations.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. This server has 11 WRITE operations (database_create, database_insert, kubectl_label, filesystem_write_file, git_add, git_commit, git_clone, git_clone_tmp, git_init, git_checkout) that would benefit from destructiveHint flagging to guide agent retry logic and prevent unintended side effects. Missing annotation support per MCP spec 2026-07-28.
Error handling descriptions are absent. No tool describes what errors can occur or how LLMs should recover. E.g., database_query accepts raw SQL but does not warn of SQL injection risk or describe error cases (syntax errors, connection failures). git_clone and filesystem_write_file can fail but descriptions do not guide recovery.
Output schemas are not documented in tool descriptions. Agents cannot infer what fields are returned (e.g., does kubectl_get return 'items', 'metadata', 'status'?). Database tools hint at structure in docstrings but filesystem and git tools provide no output guidance.
Parameter 'params' in database_query is underdescribed. The description says 'Parameters for the SQL query to prevent injection' but does not specify the expected format (dict keys matching placeholders? positional array?). This invites LLM confusion on how to pass parameterized values.
Defaults for 'limit' in filesystem_read_file (5000) and filesystem_query_json (5000) are not justified in descriptions. No explanation of why this default was chosen or how LLMs should adjust it for large files. Context window impact is not mentioned.