mcp-graphql-server
v1.0.1
Published
An MCP server that enables executing GraphQL queries through the Model Context Protocol
Maintainers
Readme
MCP GraphQL Server
A Model Context Protocol (MCP) server that enables executing GraphQL queries through Claude Desktop.
Installation
Install the server globally:
npm install -g mcp-graphql-serverVerify the installation:
mcp-graphql --versionConfiguration
Claude Desktop Setup
Open Claude Desktop's configuration file:
- macOS:
~/Library/Application Support/Claude Desktop/claude_desktop_config.json - Windows:
%APPDATA%\Claude Desktop\claude_desktop_config.json
- macOS:
Add the server configuration:
{
"mcpServers": {
"graphql": {
"command": "mcp-graphql"
}
}
}Restart Claude Desktop after saving the configuration.
Verify the server is working:
- Open Claude Desktop
- Click the tools icon (hammer)
- You should see "execute-graphql" in the list of available tools
Troubleshooting
If the tool doesn't appear in Claude Desktop:
- Verify the installation:
which mcp-graphql # On macOS/Linux
where mcp-graphql # On WindowsCheck the server logs:
- macOS:
~/Library/Logs/Claude Desktop/mcp*.log - Windows:
%APPDATA%\Claude Desktop\logs\mcp*.log
- macOS:
Common issues:
- Ensure Node.js version 16 or higher is installed
- Check that the configuration file path is correct
- Verify the binary is executable (
chmod +xon Unix systems) - Try using the absolute path to the binary in the configuration
Environment Variables
Create a .env file with the following optional configurations:
# Optional: Set timeout for GraphQL requests (in milliseconds)
GRAPHQL_TIMEOUT=30000
# Optional: Set maximum query length
MAX_QUERY_LENGTH=10000
# Optional: Set allowed endpoints (comma-separated)
ALLOWED_ENDPOINTS=https://api.example.com/graphql,https://api2.example.com/graphqlUsage
The server provides a tool for executing GraphQL queries:
- Tool name:
execute-graphql - Parameters:
endpoint(required): GraphQL endpoint URLquery(required): GraphQL query stringvariables(optional): Query variablesheaders(optional): Custom headers
Example Usage in Claude
# Example query
{
"endpoint": "https://api.example.com/graphql",
"query": "query { viewer { name } }",
"variables": {
"id": "123"
},
"headers": {
"Authorization": "Bearer token"
}
}Security Features
- Request timeout limits
- Query length validation
- Allowed endpoints configuration
- Input validation
- Error handling with detailed feedback
Development
- Clone the repository
- Install dependencies:
npm install - Build the project:
npm run build - Start in development mode:
npm run dev
License
MIT
