Using Claude Code with Gram-hosted MCP servers
Claude Code is Anthropic’s terminal-based tool that brings Claude’s capabilities directly to your command line. Unlike Claude Desktop, which runs in a graphical interface, the Claude Code CLI can access your current project folder.
When combined with Model Context Protocol (MCP) servers, Claude Code becomes even more useful. Using MCP servers, you can give Claude access to your tools and infrastructure, allowing it to work with your APIs, databases, and other services.
This guide will show you how to connect Claude Code to a Gram-hosted MCP server using the example Push Advisor API from the Gram concepts guide. You’ll learn how to set up the connection, test it, and use natural language to perform vibe checks before you vibe code.
Find the full code and OpenAPI document in the Push Advisor API repository.
Prerequisites
Section titled “Prerequisites”You’ll need:
- A Gram account.
- Claude Code installed.
Getting started
Section titled “Getting started”First, authenticate with Claude Code.
Then, verify that Claude Code is installed correctly:
claude --help
If installation is successful, you’ll see Claude Code’s available commands and options.
Creating a Gram MCP server
Section titled “Creating a Gram MCP server”If you already have a Gram MCP server configured, you can skip to connecting Claude Code to your Gram-hosted MCP server. For an in-depth guide to how Gram works and more details on how to create a Gram-hosted MCP server, check out the Gram concepts guide.
Setting up a Gram project
Section titled “Setting up a Gram project”In the Gram dashboard, click New Project to start the guided setup flow for creating a toolset and MCP server.
Enter a project name and click Submit.
Gram will then guide you through the following steps.
Step 1: Upload the OpenAPI document
Section titled “Step 1: Upload the OpenAPI document”Upload the Push Advisor OpenAPI document, enter the name of your API, and click Continue.
Step 2: Create a toolset
Section titled “Step 2: Create a toolset”Give your toolset a name (for example, “Push Advisor”) and click Continue.
Notice that the names of the tools that will be generated from your OpenAPI document are displayed in this dialog.
Step 3: Configure MCP
Section titled “Step 3: Configure MCP”Enter a URL slug for the MCP server and click Continue.
Gram will create the toolset from the OpenAPI document.
Click Toolsets in the sidebar to view the Push Advisor toolset.
Configuring environment variables
Section titled “Configuring environment variables”Environments store API keys and configuration separate from your toolset logic.
In the Environments tab, click the “Default” environment. Click Edit and then Fill for Toolset. Select the Push Advisor toolset and click Fill Variables to automatically populate the required variables.
The Push Advisor API is hosted at canpushtoprod.abdulbaaridavids04.workers.dev
, so set the <API_name>_SERVER_URL
environment variable to https://canpushtoprod.abdulbaaridavids04.workers.dev
. Click Update and then Save.
Publishing an MCP server
Section titled “Publishing an MCP server”Let’s make the toolset available as an MCP server.
Go to the MCP tab, find the Push Advisor toolset, and click Edit.
On the MCP Details page, tick the Public checkbox and click Save.
Scroll down to the MCP Config section and copy the Public Server configuration.
The configuration will look something like this:
{ "mcpServers": { "GramPushadvisor": { "command": "npx", "args": [ "mcp-remote", "https://app.getgram.ai/mcp/canipushtoprod" ] } }}
Use the Authenticated Server configuration if you want to use the MCP server in a private environment.
You’ll need an API key to use an authenticated server. Generate an API key in the Settings tab and copy it to the GRAM_KEY
environment variable in place of <your-key-here>
.
The authenticated server configuration looks something like this:
{ "mcpServers": { "GramPushadvisor": { "command": "npx", "args": [ "mcp-remote", "https://app.getgram.ai/mcp/canipushtoprod", "--header", "Authorization: ${GRAM_KEY}" ], "env": { "GRAM_KEY": "Bearer <your-key-here>" } } }}
Connecting Claude Code to your Gram-hosted MCP server
Section titled “Connecting Claude Code to your Gram-hosted MCP server”Now we’ll connect Claude Code to your newly created MCP server.
Claude Code approaches MCP server configuration differently from Claude Desktop. Instead of using a JSON config file, you add servers using the claude mcp add
command.
If you’re using the Public Server configuration, run the following command in your terminal using your MCP server URL:
claude mcp add push-advisor -- npx mcp-remote https://app.getgram.ai/mcp/canipushtoprod
If you’re using the Authenticated Server configuration, run the following command:
claude mcp add push-advisor \ -e GRAM_KEY="Bearer your-api-key-here" \ -- npx mcp-remote https://app.getgram.ai/mcp/canipushtoprod --header "Authorization: ${GRAM_KEY}"
Here’s what these commands do:
push-advisor
– The name you’re giving the server locally.--
– Separates Claude Code flags from the server command.npx mcp-remote
– The package that handles remote MCP server connections.
In the command for authenticated servers:
-e GRAM_KEY=...
– Sets your API key as an environment variable.--header
– The flag that passes the authorization header to the remote server.
Verifying the connection
Section titled “Verifying the connection”Check that the server was added successfully:
claude mcp list
You should see push-advisor
in the list.
To see the full configuration:
claude mcp get push-advisor
Testing the setup
Section titled “Testing the setup”Now test the connection by starting Claude Code and running a vibe check.
First, start an interactive session with Claude Code in your terminal:
claude
Ask Claude a basic question like, “What’s the vibe today?”
Testing tool permissions
Section titled “Testing tool permissions”Ask Claude to check if it’s safe to push code to production today.
Is it safe to push code to production today?
Claude Code will use the can_i_push_to_prod
tool to check the current day and ask for permission to use it. A prompt will appear asking to confirm the tool call.
Troubleshooting
Section titled “Troubleshooting”Let’s go through some common issues and how to fix them.
Server not found
Section titled “Server not found”If Claude Code can’t find your server:
# Check if the server is listedclaude mcp list
# Remove and re-add the serverclaude mcp remove push-advisorclaude mcp add push-advisor -- npx mcp-remote https://app.getgram.ai/mcp/canipushtoprod
Authentication errors
Section titled “Authentication errors”If you get authentication errors:
- Verify your Gram API key in the dashboard under Settings > API Keys.
- Check that environment variables are correctly set in Gram.
- Ensure the Push Advisor API base URL is accessible.
Tool calls not working
Section titled “Tool calls not working”If Claude Code isn’t calling the tools:
- Test the MCP server in the Gram Playground first.
- Check that the toolset includes the tools to use.
- Verify the environment is correctly configured with the required variables.
What’s next
Section titled “What’s next”You now have Claude Code connected to a Gram-hosted MCP server with vibe-checking capabilities.
Ready to build your own MCP server? Try Gram today and see how easy it is to turn any API into agent-ready tools.