Gen3 MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Gen3 MCP Serverlist all entities in the schema"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Gen3 MCP Server
A Model Context Protocol (MCP) server for interacting with Gen3 data commons, with GraphQL query validation to reduce hallucinations.
Install and Configure
These instructions are for using the server in a chat client. For development, see Development.
# Clone the repository
git clone <repository-url>
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | shCreate Gen3 credentials file
Create a file credentials.json containing your Gen3 API key:
{
"api_key": "xxxx",
"key_id": "xxxx"
}Configure chat client
Example for Claude Desktop ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"gen3-mcp-server": {
"command": "uvx",
"args": [
"--from", "/path/to/gen3-mcp",
"gen3-mcp"
],
"env": {
"GEN3_CREDENTIALS_FILE": "/path/to/credentials.json",
"GEN3_BASE_URL": "https://gen3.datacommons.io/",
"GEN3_LOG_LEVEL": "INFO"
}
}
}
}Related MCP server: GraphQL MCP Toolkit
Example Usage in chat client

Available Tools
The MCP server provides the following tools:
Schema Discovery Tools
get_schema_summary()- Get annotated overview of all entities and their relationshipsget_schema_entity(entity)- Get detailed schema info about a specific entity including all fields
Query Building Tools
generate_query_template(entity_name, include_relationships=True, max_fields=20)- Generate safe query templates with validated fieldsvalidate_query(query)- Validate GraphQL query syntax and field names against schema
Query Execution Tool
execute_graphql(query)- Execute validated GraphQL queries against the Gen3 data commons
Acknowledgments
Built with MCP (Model Context Protocol) and designed for Gen3 Data Commons.
Available Tools
5 toolsexecute_graphqlA
Execute your GraphQL query and retrieve data from the Gen3 data commons.
Runs your validated GraphQL query against the Gen3 data commons and returns the actual data. This is where you get real research data back. Make sure your query is validated first to avoid errors.
Args: query: A valid GraphQL query string (validated with validate_query)
Returns: The data results from your query. On success, data contains the requested information. On error, includes specific error details and suggestions for fixing the query.
Workflow: get_schema_summary → get_schema_entity → generate_query_template → validate_query → You are here
IMPORTANT
Always run validate_query on the query before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| query | 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. It mentions that the tool 'returns actual data' and includes error details, but does not explicitly state whether it is read-only, any authorization requirements, or potential side effects. Additional behavioral details would improve transparency.
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 with sections for args, returns, workflow, and an important note. While slightly verbose, each sentence adds value and the critical information is front-loaded.
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 a single parameter and no output schema, the description covers purpose, usage prerequisites, workflow, and error handling. It is sufficient for an agent to use the tool effectively, though mentioning read-only nature would enhance completeness.
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 provides only a 'query' string with no description. The description adds meaning by specifying it must be a valid GraphQL query validated by validate_query, and explains return values. This compensates for the 0% schema coverage.
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 'Execute your GraphQL query and retrieve data from the Gen3 data commons,' specifying the verb (execute), resource (GraphQL query), and context (Gen3 data commons). It also distinguishes this tool from siblings by positioning it as the final execution step after validation.
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 explicitly recommends running validate_query first and outlines a workflow sequence, guiding when to use this tool. It does not specify when not to use it, but the context is clear enough for the agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_query_templateA
Generate a ready-to-use GraphQL query template for any data type.
Takes an entity name (from get_schema_summary) and creates a complete, valid GraphQL query with the most useful fields and relationships. This gives you a working starting point that you can customize.
Args: entity_name: Name of the data type to query (e.g., 'subject', 'sample') include_relationships: Whether to include related data types in template max_fields: Maximum number of fields to include (controls template size)
Returns: A complete GraphQL query template ready to use or customize. Copy the template from data.template and modify as needed.
Workflow: get_schema_summary → get_schema_entity → You are here → validate_query → execute_graphql
| Name | Required | Description | Default |
|---|---|---|---|
| entity_name | Yes | ||
| include_relationships | No | ||
| max_fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries the burden. It explains that the output is a template with useful fields and relationships, and mentions the output structure (data.template). However, it lacks details on error cases (e.g., invalid entity) or performance implications.
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 concise and well-structured. It starts with the main purpose, then lists parameter descriptions, and ends with the workflow placement. Every sentence adds value 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 three parameters, no output schema, and no annotations, the description sufficiently covers purpose, parameters, return value, and context within the sibling workflow. It enables an agent to use the tool effectively.
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 provides clear explanations for all three parameters: entity_name with examples, include_relationships stating its purpose, and max_fields describing its control over template size. This adds value beyond the raw 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 it generates a ready-to-use GraphQL query template for any data type, with specific verb+resource. It explicitly places itself in a workflow sequence (get_schema_summary → get_schema_entity → here → validate_query → execute_graphql), distinguishing it from siblings.
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?
Provides the intended workflow and prerequisite (entity name from get_schema_summary). While it doesn't explicitly exclude alternatives, the workflow gives clear context on when to use this tool in the pipeline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schema_entityA
Get detailed information for a specific entity including all fields.
Retrieves complete entity definition with all scalar fields, relationships, and metadata. Use this after get_schema_summary() to explore specific entities in detail before building queries.
Args: entity_name: Name of the entity to retrieve (from get_schema_summary)
Returns: Complete entity data including all fields, relationships, and metadata.
Workflow: get_schema_summary → You are here → generate_query_template → validate_query → execute_graphql
| Name | Required | Description | Default |
|---|---|---|---|
| entity_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It declares a read operation with no destructive hints, but lacks details on limitations, authentication, or performance.
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?
Concise, front-loaded purpose, and the workflow list provides clear structure without unnecessary 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?
Provides workflow context and sibling relationship, but lacks details on the return format or any constraints. Adequate for its role in the pipeline.
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?
Single parameter 'entity_name' is clearly described with its source (from get_schema_summary), adding meaning beyond the bare schema which has no description.
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 'Get detailed information for a specific entity' and distinguishes from siblings by positioning it between get_schema_summary and generate_query_template.
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?
Provides explicit workflow and instructs to use after get_schema_summary and before generate_query_template. However, no explicit when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schema_summaryA
Discover the data model structure of a Gen3 data commons.
This is your starting point! Get an overview of all available nodes (entities) in the Gen3 data commons, including their relationships and metadata. Field details are omitted for conciseness - use get_schema_entity to explore specific entities in detail.
Returns: Schema overview with entity names, relationships, and metadata.
Workflow: Start here → get_schema_entity → generate_query_template → validate_query → execute_graphql
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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. It discloses that the tool returns an overview with entity names, relationships, and metadata, and that field details are omitted. It does not mention side effects or auth requirements, but for a read-only schema discovery tool, this is adequate. Slightly more could be said about potential performance or caching, but it's not critical.
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 extremely concise, using only three sentences plus a returns line and workflow. Every sentence serves a purpose: stating the action, clarifying scope, and providing workflow guidance. 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 low complexity (0 parameters, no output schema), the description is complete. It explains the return value (overview with entities, relationships, metadata) and explicitly states what is omitted (field details). The workflow provides full context for integration with sibling tools.
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 tool has zero parameters, so schema coverage is 100%. The description adds value by explaining what the output contains (entity names, relationships, metadata) and the workflow context. Since there are no parameters, the baseline is 4, and the description meets that.
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 explicitly states that the tool provides an overview of the data model structure, including nodes, relationships, and metadata. It differentiates from sibling tools by mentioning that field details are omitted and that get_schema_entity should be used for specifics. The workflow clearly positions it as the starting point.
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 explicit guidance on when to use this tool: 'This is your starting point!' and advises against using it for detailed field exploration, directing to get_schema_entity. It also includes a complete workflow sequence: start here, then use get_schema_entity, generate_query_template, validate_query, execute_graphql.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_queryA
Check if your GraphQL query is valid before executing it.
Validates your GraphQL query syntax and verifies that all entities and fields exist in the schema. Catches errors early and provides specific suggestions for fixing issues. Always validate before executing to avoid runtime errors.
Args: query: The GraphQL query string to validate
Returns: Validation results with detailed error messages and fix suggestions if issues are found. A valid query means it's safe to execute.
Workflow: get_schema_summary → get_schema_entity → generate_query_template → You are here → execute_graphql
IMPORTANT
Always run this before calling execute_graphql
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses behavior: validates syntax and schema existence, returns detailed error messages and fix suggestions, and states valid query is safe to execute. No contradictions.
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?
Description is well-structured with paragraphs, bullet points, and a workflow. Every sentence adds value without being verbose.
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 simple tool with one param and no output schema, description covers purpose, usage, input format, and output description. Workflow contextualizes it among siblings.
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?
Only one parameter 'query'; description adds 'The GraphQL query string to validate' beyond the schema's type string, clarifying the expected input. Schema coverage 0% but description compensates well.
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 validates GraphQL queries, specifying syntax and schema existence checks. It distinguishes from siblings like execute_graphql and generate_query_template.
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?
Explicitly says 'Always validate before executing' and provides a workflow showing its place before execute_graphql. Gives context on when to use (before execution) and implies not to use otherwise.
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. Dates show when Glama detected each change.
5 tool updates
v1.3.0- First observed
execute_graphql - First observed
generate_query_template - First observed
get_schema_entity - First observed
get_schema_summary - First observed
validate_query
TDQS
Each tool has a distinct, clearly defined role in the query workflow, from schema discovery to execution. There is no overlap; even the two 'get_schema' tools differ in scope (summary vs. entity details).
All tool names follow a consistent verb_noun pattern in snake_case (e.g., execute_graphql, get_schema_entity). The verbs are descriptive and match the tool's action.
With five tools, the server covers the essential steps for querying a Gen3 data commons without being overly minimal or bloated. Each tool serves a necessary function in the documented workflow.
The tools cover the full query lifecycle from schema exploration to execution. However, there is no direct support for advanced query editing or result management, which slightly limits completeness for power users.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The Grafbase MCP server sits in front of a GraphQL API and exposes an MCP protocol-compliant interface that allows AI agents and LLMs to explore and query GraphQL APIs using natural language. It provides tools to search schemas, introspect types and fields, and execute GraphQL queries while minimizing context bloat by returning only relevant schema subsets, with built-in support for authentication, authorization, and configurable access control.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables LLMs to interact with GraphQL APIs by providing schema introspection and query execution capabilities.1,3173MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables LLMs to interact with GraphQL APIs by providing schema introspection and query execution capabilities.21MIT
- AlicenseCqualityDmaintenanceA Model Context Protocol server for executing GraphQL queries, allowing AI models to interact with GraphQL APIs through introspection and query execution.31,317MIT
- AlicenseNot gradedqualityCmaintenanceA governed, audited Model Context Protocol server that provides AI agents with secure, read-only access to a clinical knowledge base through least-privilege tools, policy validation, and append-only audit logging.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/delocalizer/gen3-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server