Exposes GraphQL operations from any GraphQL backend as MCP tools, allowing AI agents to execute queries and mutations against GraphQL APIs using the operations defined in .graphql files.
Allows ChatGPT to utilize GraphQL operations as tools through OpenAI's function calling capability, enabling interaction with any GraphQL API.
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., "@gqaiget all Star Wars films"
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.
gqai
graphql β ai
gqai is a lightweight proxy that exposes GraphQL operations as
Model Context Protocol (MCP) tools for AI like
Claude, Cursor, and ChatGPT.
Define tools using regular GraphQL queries/mutations against your GraphQL backend, and gqai automatically
generates an MCP server for you.
π Powered by your GraphQL backend
βοΈ Driven by .graphqlrc.yml + plain .graphql files
β¨ Features
π§° Define tools using GraphQL operations
π Automatically discover operations from
.graphqlrc.ymlπ§Ύ Tool metadata compatible with OpenAI function calling / MCP
Related MCP server: tavily-search
π οΈ Installation
π Quick Start
Create a .graphqlrc.yml:
This file tells gqai where to find your GraphQL schema and operations.
Note: The
Add a GraphQL operation
get_all_films.graphql:
Add gqai to your
mcp.jsonfile:
That's it! Your AI model can now call the get_all_films tool.
Usage
Configuration
GraphQL Config
The graphql config
file is a YAML file that defines the GraphQL endpoint and the operations
you want to expose as tools. It should be named .graphqlrc.yml and placed in the root of your project.
The schema field specifies the GraphQL endpoint, and the documents field specifies the directory where your GraphQL operations are located.
In this example, the operations directory contains all the GraphQL operations you want to expose as tools.
Operations are defined in .graphql files, and gqai will automatically discover them.
Headers
You can also specify headers to be sent with each request to the GraphQL endpoint. This is useful for authentication or other custom headers.
Using Environment Variables in Headers
You can reference environment variables in header values using the ${VARNAME} syntax. For example:
You can also provide a default value using the ${VARNAME:-default} syntax:
When gqai loads the config, it will substitute ${MY_AUTH_TOKEN} with the value of the MY_AUTH_TOKEN environment variable, or use default-token if the variable is not set. This allows you to keep secrets out of your config files.
If the environment variable is not set and no default is provided, the value will be left as-is.
Using Environment Variables in Config
You can use environment variables in any part of your .graphqlrc.yml config: schema URLs, document paths, include/exclude globs, and header values. Use ${VARNAME} or ${VARNAME:-default} syntax:
gqai will substitute these with the value of the environment variable, or use the default if not set. This keeps secrets and environment-specific paths out of your config files.
MCP Configuration
Claude Desktop
To use gqai with Claude Desktop, you need to add the following configuration to your mcp.json file:
π§ͺ CLI Testing
Call a tool via CLI to test:
This will execute the get_all_films tool and print the result.
Call a tool with arguments:
Create a GraphQL operation that takes arguments, and these will be the tool inputs:
get_film_by_id.graphql:
Call the tool with arguments:
This will execute the get_film_by_id tool with the provided arguments.
Development
Prerequisites
Go 1.20+
Build
Test
Format
Run MCP server
Run CLI
About GQAI
π€ Why gqai?
gqai makes it easy to turn your GraphQL backend into a model-ready tool layer β no code, no extra infra. Just define your operations and let AI call them.
π License
MIT β fork it, build on it, all the things.
π Author
Made with β€οΈ and π€vibes by Stephen Spalding && <your-name-here>