shape-network/mcp-server
If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Shape MCP Server is a Model Context Protocol server designed to provide AI assistants with access to Shape's onchain data, including gasback distribution, collections analytics, and stack user information.
Shape MCP Server
Model Context Protocol (MCP) server for Shape, built with xmcp. This server provides AI assistants access to Shape's onchain data: gasback distribution, collections analytics, stack users & more.
Contributions are welcome! Fork and add your own tools, feel free to submit a PR.
Check our docs about how to build AI on Shape: https://docs.shape.network/building-on-shape/ai
Features
Organized by functionality for easy extension:
- Gasback Analytics - Track creator earnings, top performers, and simulate gasback earned
- NFT Analysis - Collections and ownership
- Stack Achievements - Monitor user progress in Shape's Stack ecosystem
- Network Monitoring - Chain health, metrics, RPC URLs, etc
- AI Ready - Tools are optimized for agent chaining and automation
- Caching - Optional Redis for snappier responses & less load on RPCs, no lock-in required
Available Tools
Network Tools (/tools/network/
)
getChainStatus
Monitor Shape's network: RPC health, gas prices, block times, etc.
Example prompt: "current shape status? gas prices looking mint-friendly?"
NFT Tools (/tools/nft/
)
getCollectionAnalytics
Collection stats: supply, owners, sample NFTs, floors, etc.
Example prompt: "what's the vibe on collection 0x567...abc? floor price and top holders?"
getShapeNft
List NFTs for an address, with metadata.
Example prompt: "what NFTs does 0xabcd...123 hold on shape?"
Gasback Tools (/tools/gasback/
)
getShapeCreatorAnalytics
Shape builder/creator deep dive: earnings, tokens, withdrawals, etc.
Example prompt: "analyze creator 0xabcd...123's gasback and compare to top earners. any tips?"
getTopShapeCreators
Top creators by gasback earned & tx.
Example prompt: "who are shape's top 10 gasback earners?"
simulateGasbackRewards
Get gasback rough estimates.
Example prompt: "simulate 50 txs/day at 50k gasβearnings over 3 months? wen lambo?"
ποΈ Stack Tools (/tools/stack/
)
getStackAchievements
User medals by tier, total count, etc.
Example prompt: "what's 0xghi...123's stack status? gold medals?"
Quick Test (No Setup Required)
Want to try the MCP server without local setup? Point directly to our deployed instance:
{
"mcpServers": {
"shape-mcp": {
"url": "https://shape-mcp-server.vercel.app/mcp"
}
}
}
Note: This deployed version is rate limited and is intended for testing/sandbox use only. For production AI applications, we recommend self-hosting your own instance following the setup instructions above.
Prerequisites
- Alchemy API key for NFT queries (get one here)
- MCP client like Cursor IDE, Claude Desktop or your AI client of choice
- Optional: Redis for caching (speeds up RPC-heavy tools)
Setup
1. Environment Configuration
Copy .env.example
to .env
and fill in:
ALCHEMY_API_KEY=your_key_here
CHAIN_ID=360 # Mainnet; use 11011 for Sepolia
# Optional caching
REDIS_URL=redis://localhost:6379 # Local, or Upstash for prod
2. Install Dependencies
yarn install
3. Run Locally
yarn dev
Server is now running at http://localhost:3002/mcp
π Client Integration
MCP Settings
Add to your MCP settings in Cursor for eg:
{
"mcpServers": {
"shape-mcp": {
"url": "http://localhost:3002/mcp"
}
}
}
Project Structure
src/
βββ tools/ # Modular tools
β βββ gasback/
β βββ network/
β βββ nft/
β βββ stack/
βββ abi/ # Contract interfaces
βββ utils/ # Helpers like cache.ts
βββ addresses.ts # Key contracts addys
βββ clients.ts # RPC/Alchemy/Redis
βββ config.ts # Env-based setup
βββ middleware.ts # Auth/logging if needed
βββ types.ts # Shared outputs
βββ xmcp.config.ts # xmcp server config
Categories keep things modular. Add a tool to /tools/gasback/ and xmcp auto-picks it up. No monolith mess.
Adding New Tools
- Pick a category folder (e.g., /tools/gasback/)
- New .ts file with schema, metadata, function
- Example:
import { z } from 'zod';
import { type InferSchema } from 'xmcp';
export const schema = {
address: z.string().describe('Wallet to analyze'),
};
export const metadata = {
name: 'myTool',
description: 'Custom tool for fun insights',
annotations: {
title: 'My Tool',
readOnlyHint: true,
destructiveHint: false,
idempotentHint: true,
requiresWallet: false,
category: 'gasback',
chainableWith: ['getShapeCreatorAnalytics'],
},
};
export default async function myTool({ address }: InferSchema<typeof schema>) {
// Logic here
return {
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
};
}
Caching (Optional)
Redis cuts RPC load for repeat calls. Set REDIS_URL
to your instance (Vercel KV or Upstash). Skip it? Tools run direct, no sweat. See cache.ts
for the simple get/set logic.
Deploy Your Own
Fork this repo and deploy your personal MCP:
- Fork on GitHub
- Import to Vercel: New Project
- Set env vars:
SHAPE_RPC_URL
(your node),ALCHEMY_API_KEY
,CHAIN_ID
(360
for mainnet, or11011
for testnet), optionalREDIS_URL
- Deployβaccess at your-vercel-url/mcp!
RPC Setup
Use your own Alchemy API key to avoid public RPC limits. Default falls back to Shapeβs public node https://mainnet.shape.network
and https://sepolia.shape.network
.
Resources
Support
Contact @williamhzo or hop into Shape Discord.
MIT LICENSE -