Hex API MCP Server
hex-mcp MCP 服务器
一个用于 Hex 的 MCP 服务器,可实现以下工具:
list_hex_projects:列出可用的 Hex 项目search_hex_projects:按模式搜索 Hex 项目get_hex_project:获取有关特定项目的详细信息get_hex_run_status:检查项目运行的状态get_hex_project_runs:获取项目运行的历史记录run_hex_project:执行 Hex 项目cancel_hex_run:取消正在运行的项目
安装
使用 uv 是安装 hex-mcp 的推荐方法:
uv add hex-mcp或者使用 pip:
pip install hex-mcp为了确认它正常工作,您可以运行:
hex-mcp --versionRelated MCP server: Integrator MCP Server
配置
使用 config 命令(推荐)
配置 hex-mcp 最简单的方法是使用config命令并传递你的 API 密钥和 API URL(可选,默认为https://app.hex.tech/api/v1 ):
hex-mcp config --api-key "your_hex_api_key" --api-url "https://app.hex.tech/api/v1"[!NOTE] 这会将您的配置保存到主目录中的文件中(例如
~/.hex-mcp/config.yml),使其可用于所有 hex-mcp 调用。
使用环境变量
或者,可以使用环境变量配置 Hex MCP 服务器:
HEX_API_KEY:您的 Hex API 密钥HEX_API_URL:Hex API 基本 URL
在为 MCP 服务器设置环境变量时,它们必须是全局的,以便 Cursor 能够获取它们,或者在调用服务器时使用 uv 的--env-file标志。
与游标一起使用
Cursor 允许 AI 代理通过 MCP 协议与 Hex 交互。请按照以下步骤设置并使用 hex-mcp 与 Cursor 交互。您可以在项目根目录中创建一个.cursor/mcp.json文件,其中包含以下内容:
{
"mcpServers": {
"hex-mcp": {
"command": "uv",
"args": ["run", "hex-mcp", "run"]
}
}
}或者,如果hex-mcp命令在您的 PATH 中,您可以直接使用它:
{
"mcpServers": {
"hex-mcp": {
"command": "hex-mcp",
"args": ["run"]
}
}
}一旦它启动并运行,您就可以在 Cursor 中使用它,通过启动新的 AI(代理)对话并要求它列出或运行 Hex 项目。
[!IMPORTANT] MCP 服务器和 CLI 仍处于开发阶段,可能会发生重大变化。
Available Tools
7 toolscancel_hex_runB
Cancel a running project.
Args:
project_id: The UUID of the Hex project
run_id: The UUID of the run to cancel
Returns:
Success message
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action is 'Cancel' but doesn't clarify if this is destructive (e.g., irreversible), requires specific permissions, has side effects, or details error conditions. The mention of 'Success message' hints at output but lacks specifics, leaving significant gaps in behavioral understanding.
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 appropriately sized and front-loaded, with the core purpose stated first ('Cancel a running project'), followed by structured sections for Args and Returns. Each sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse.
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 (a mutation with 2 parameters) and lack of annotations and output schema, the description is minimally adequate. It covers the basic purpose and parameters but misses behavioral details like side effects or error handling. For a cancellation tool, this leaves room for improvement in guiding safe and effective use.
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 description adds meaningful context beyond the input schema, which has 0% description coverage. It specifies that 'project_id' is 'The UUID of the Hex project' and 'run_id' is 'The UUID of the run to cancel', clarifying the nature and format of these parameters, which compensates well for the schema's lack of 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 clearly states the action ('Cancel') and target ('a running project'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate this tool from sibling tools like 'get_hex_run_status' or 'run_hex_project', which would require mentioning it specifically stops execution versus monitoring or initiating runs.
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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the run must be in progress), exclusions (e.g., cannot cancel completed runs), or refer to sibling tools like 'get_hex_run_status' for checking status first, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hex_projectB
Get details about a specific Hex project.
Args:
project_id: The UUID of the Hex project
Returns:
JSON string with project details
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves details (implying a read operation) and returns JSON, but doesn't describe error handling, authentication requirements, rate limits, or what specific details are included in the response. For a tool with no annotation coverage, this leaves significant behavioral gaps.
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 appropriately sized and well-structured with clear sections for Args and Returns. Each sentence earns its place by providing essential information without redundancy, making it easy to parse and understand quickly.
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 moderate complexity (single parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and parameter semantics but lacks details on return structure, error cases, and behavioral traits. Without annotations or output schema, more context would be helpful for reliable agent invocation.
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 description adds meaningful context for the single parameter by specifying 'The UUID of the Hex project', which clarifies the format and purpose beyond the schema's generic 'Project Id' title. With 0% schema description coverage, this compensates well, though it doesn't provide examples or constraints on the UUID format.
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 with a specific verb ('Get details') and resource ('about a specific Hex project'). It distinguishes this from list/search operations by focusing on a single project, though it doesn't explicitly differentiate from sibling tools like get_hex_project_runs which also retrieves project-related information.
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 implies usage context by specifying 'a specific Hex project' and requiring a project_id, suggesting this is for retrieving details of a known project rather than listing or searching. However, it doesn't provide explicit guidance on when to use this versus alternatives like list_hex_projects or search_hex_projects, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hex_project_runsC
Get the runs for a specific project.
Args:
project_id: The UUID of the Hex project
limit: The number of runs to return
offset: The number of runs to skip
Returns:
JSON string with project runs
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] the runs' and returns a 'JSON string,' but does not describe key behaviors such as pagination handling (implied by limit/offset but not explained), error conditions, authentication needs, rate limits, or whether it's read-only or has side effects. For a tool with parameters and no annotations, this leaves significant gaps in understanding its operation.
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 well-structured and appropriately sized, with a clear purpose statement followed by 'Args' and 'Returns' sections. Every sentence adds value: the purpose is front-loaded, and parameter and return details are concise. It avoids redundancy, though minor improvements could include integrating defaults or clarifying JSON structure.
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 complexity (3 parameters, no annotations, no output schema), the description is incomplete. It covers basic purpose and parameters but lacks behavioral context (e.g., pagination, errors, side effects) and detailed return value explanation beyond 'JSON string.' Without annotations or output schema, more information is needed for the agent to use the tool effectively in varied scenarios.
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 description lists parameters (project_id, limit, offset) and their purposes in the 'Args' section, adding meaning beyond the input schema, which has 0% description coverage. However, it does not elaborate on format details (e.g., UUID validation for project_id, default values for limit/offset, or constraints like minimum/maximum values). With low schema coverage, it partially compensates but lacks depth for full parameter understanding.
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: 'Get the runs for a specific project.' It specifies the verb ('Get') and resource ('runs for a specific project'), making the intent unambiguous. However, it does not explicitly differentiate this tool from sibling tools like 'get_hex_run_status' or 'run_hex_project,' which might also involve project runs, so it misses full sibling distinction.
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 guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'get_hex_run_status' for status checks or 'run_hex_project' for initiating runs, nor does it specify prerequisites or exclusions. Usage is implied only by the purpose statement, lacking explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hex_run_statusB
Get the status of a project run.
Args:
project_id: The UUID of the Hex project
run_id: The UUID of the run
Returns:
JSON string with run status details
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it states this is a 'Get' operation (implying read-only), it doesn't mention authentication requirements, rate limits, error conditions, or what specific 'run status details' might include. The return format is vaguely described as 'JSON string,' lacking detail on structure or typical fields.
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 efficiently structured with a clear purpose statement followed by well-organized 'Args' and 'Returns' sections. Every sentence adds value: the first establishes the tool's function, and the subsequent lines provide essential parameter and return information without redundancy.
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 moderate complexity (2 required parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameters but lacks behavioral context (e.g., error handling, authentication) and detailed return value explanation, which would be important for a status-checking tool in a workflow system.
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 description explicitly documents both parameters ('project_id' and 'run_id') with clear semantic meaning ('UUID of the Hex project' and 'UUID of the run'), adding significant value beyond the schema which has 0% description coverage and only provides titles. This compensates well for the schema's lack of parameter documentation.
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 verb ('Get') and resource ('status of a project run'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_hex_project_runs' which might also provide run status information in a different context.
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 guidance on when to use this tool versus alternatives. With siblings like 'get_hex_project_runs' (which might list runs) and 'cancel_hex_run' (which might require status checks), there's no indication of appropriate contexts, prerequisites, or exclusions for this specific status retrieval tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hex_projectsC
List all available Hex projects that are in production.
Returns:
JSON string with list of projects
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return format ('JSON string with list of projects'), which is helpful, but lacks critical details like whether this is paginated (implied by limit/offset parameters but not stated), rate limits, authentication requirements, or error conditions. The description is minimal and leaves significant behavioral aspects unclear.
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 very concise (two sentences) and front-loaded with the core purpose. Every sentence earns its place, though it could be slightly more informative without losing conciseness. 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 has 2 parameters, no annotations, and no output schema, the description is incomplete. It lacks parameter explanations, behavioral context (e.g., pagination, errors), and doesn't clarify the relationship with sibling tools. The mention of return format is helpful but insufficient for a list tool with pagination parameters.
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 0%, so the description must compensate for undocumented parameters. However, the description doesn't mention the 'limit' and 'offset' parameters at all, nor does it explain their purpose (e.g., pagination). The baseline is 3 because the schema itself provides parameter definitions (with titles and defaults), but the description adds no semantic value beyond what's in the schema.
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 verb ('List') and resource ('Hex projects'), and specifies the scope ('all available... that are in production'). However, it doesn't explicitly differentiate from sibling tools like 'search_hex_projects' or 'get_hex_project', which would be needed for a perfect score.
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 guidance on when to use this tool versus alternatives like 'search_hex_projects' or 'get_hex_project'. It mentions the scope ('in production') but doesn't explain when this filtering is appropriate or what the alternatives are for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_hex_projectC
Run a Hex project.
Args:
project_id: The UUID of the Hex project to run
input_params: Optional input parameters for the project
update_published_results: Whether to update published results
Returns:
JSON string with run details
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| input_params | No | ||
| update_published_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states basic action and return format. It misses critical behavioral details: whether this is a read/write operation, if it triggers long-running processes, requires specific permissions, has rate limits, or what 'update_published_results' entails (e.g., destructive changes).
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 appropriately sized with a clear header and bullet points for args and returns. It's front-loaded with the main purpose, though the bullet format could be more streamlined (e.g., combining into prose). No wasted sentences, but minor structural improvements possible.
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 complexity (3 params, nested objects, no output schema, no annotations), the description is incomplete. It lacks details on execution behavior, error handling, return value structure beyond 'JSON string', and how it interacts with sibling tools. For a tool that likely triggers significant operations, this is inadequate.
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 0%, so the description must compensate. It lists parameters and adds minimal semantics (e.g., 'UUID' for project_id, 'Optional' for input_params), but doesn't explain parameter formats, what input_params should contain, or implications of update_published_results. This provides some value but leaves gaps.
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 verb 'Run' and resource 'Hex project', making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_hex_project_runs' or 'get_hex_run_status', which might be related to execution monitoring.
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?
No guidance is provided on when to use this tool versus alternatives like 'cancel_hex_run' or 'get_hex_run_status'. The description lacks context about prerequisites, such as whether the project must be in a specific state, or when to choose this over other execution-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_hex_projectsA
Search for Hex projects using regex pattern matching on project titles.
Args:
search_pattern: Regex pattern to search for in project titles
limit: Maximum number of projects to return (default: 100)
offset: Number of projects to skip for pagination (default: 0)
Returns:
JSON string with matching projects
| Name | Required | Description | Default |
|---|---|---|---|
| search_pattern | Yes | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the return format ('JSON string with matching projects') and pagination behavior via offset/limit parameters, but doesn't mention rate limits, authentication requirements, error conditions, or what happens when no matches are found. It provides basic behavioral context but misses important operational details.
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 perfectly structured and front-loaded: purpose statement first, then organized parameter explanations, then return value. Every sentence earns its place with zero waste. The Args/Returns formatting enhances readability without verbosity.
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 search tool with 3 parameters, no annotations, and no output schema, the description provides adequate basic information but has gaps. It explains parameters well and states the return format, but doesn't describe the structure of returned projects, error handling, or operational constraints. Given the complexity and lack of structured data, it should provide more complete context.
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 0% schema description coverage, the description fully compensates by explaining all three parameters: search_pattern ('Regex pattern to search for in project titles'), limit ('Maximum number of projects to return'), and offset ('Number of projects to skip for pagination'). It adds crucial meaning beyond the bare schema, including default values and semantic context.
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 with a specific verb ('Search for') and resource ('Hex projects'), and distinguishes it from siblings by specifying 'regex pattern matching on project titles' - unlike list_hex_projects which presumably lists all projects without filtering.
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 implies when to use this tool (when you need to search projects by title pattern) but doesn't explicitly state when NOT to use it or name specific alternatives. It distinguishes from list_hex_projects by mentioning pattern matching, but lacks explicit exclusions or comparison guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
cancel_hex_run - First observed
get_hex_project - First observed
get_hex_project_runs - First observed
get_hex_run_status - First observed
list_hex_projects - First observed
run_hex_project - First observed
search_hex_projects
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose targeting specific resources and actions: listing/searching projects, getting project details, managing runs (initiate, check status, cancel), and retrieving run lists. No overlap exists between tools like list_hex_projects (all production projects) and search_hex_projects (pattern-based search), or between run management tools.
All tools follow a consistent verb_noun pattern with 'hex' prefix: list_hex_projects, search_hex_projects, get_hex_project, get_hex_project_runs, run_hex_project, get_hex_run_status, cancel_hex_run. The naming convention is perfectly uniform throughout the set.
With 7 tools, this is well-scoped for a Hex project management server. The count covers core operations (list, search, get, run, monitor runs) without being excessive or insufficient. Each tool serves a clear purpose in the workflow.
The tool surface provides complete coverage for Hex project management: discovery (list/search), inspection (get project details), execution (run project with parameters), run monitoring (status, list runs), and control (cancel run). No obvious gaps exist for the stated domain.
Maintenance
Related MCP Connectors
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA server that enables AI assistants to understand and interact with Unity projects in real-time, providing access to scene hierarchy, project settings, and the ability to execute code directly in the Unity Editor.17 npm159MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that allows AI assistants to invoke and interact with Integrator automation workflows through an API connection.6 npmMIT
- AlicenseBqualityFmaintenanceAn AI-powered server that provides access to Roblox Studio data through a plugin architecture, enabling AI tools to interact with file systems, studio context, properties, and project structure.245 npm492MIT
- AlicenseCqualityDmaintenanceA Model Context Protocol server that provides a comprehensive interface to Alteryx Servers, enabling AI assistants to manage workflows, collections, users, schedules, credentials, and more.4313MIT