mcp-suite
Provides Web3/DeFi tools for accessing blockchain data, including wallet balances, NFT information, and AMM pool reserves across multiple chains.
Provides developer tools for accessing GitHub repositories, including repository statistics, pull request summaries, pipeline status, and deployment health.
Provides tools for monitoring GitHub Actions pipeline runs and deployment status across different branches and repositories.
Provides NFT tools for accessing floor prices, recent sales data, and collection information across multiple marketplaces including OpenSea and Blur.
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., "@mcp-suiteget the current price of Bitcoin and Ethereum"
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.
mcp-suite
A production-grade TypeScript MCP server that gives AI agents (Claude Desktop, Cursor, Windsurf, custom agents) structured access to real-world data across four domains: financial markets, Web3/DeFi, developer tools, and healthcare (FHIR).
Auth-first — JWT validation enabled by default
Domain isolation — missing API keys disable one domain, not the whole server
Response cache (LRU + TTL) and token-bucket rate limiting per domain
Typed schemas (Zod) on every tool input and output
Two transports: stdio (local) and HTTP + SSE (remote/hosted)
Quick Start
# Run directly (no global install required)
npx mcp-suite
# Or install globally
npm install -g mcp-suite
mcp-suiteRequirements: Node.js ≥ 20, npm ≥ 10
Installation
1. Set up environment variables
Copy .env.example to .env and fill in the keys for the domains you want to enable:
cp .env.example .env# Authentication (required in production)
MCP_JWT_SECRET=your-secret-here
# Financial Markets (Alpha Vantage + CoinGecko)
ALPHA_VANTAGE_API_KEY=
# Web3 / DeFi (Alchemy + OpenSea + Blur)
ALCHEMY_API_KEY=
OPENSEA_API_KEY=
# Developer Tools (GitHub)
GITHUB_TOKEN=
# Healthcare / FHIR (optional — defaults to public HAPI sandbox)
FHIR_BASE_URL=https://hapi.fhir.org/baseR4
# Server
LOG_LEVEL=info # debug | info | warn | error
MCP_PORT=3000 # HTTP transport only
AUTH_DISABLED=false # set true for local dev onlyYou only need keys for the domains you use. Domains with missing keys are silently disabled at startup.
2. Generate a development token
npx mcp-suite gen-token
# eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...3. Add to Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"mcp-suite": {
"command": "npx",
"args": ["mcp-suite"],
"env": {
"MCP_JWT_SECRET": "your-secret-here",
"ALPHA_VANTAGE_API_KEY": "...",
"ALCHEMY_API_KEY": "...",
"OPENSEA_API_KEY": "...",
"GITHUB_TOKEN": "..."
}
}
}
}4. Start as HTTP server (remote/hosted deployments)
npx mcp-suite --transport http --port 3000This exposes GET /health, GET /tools, and the SSE endpoint for remote MCP clients.
CLI Commands
Command | Description |
| Start server (stdio transport, default) |
| Start HTTP + SSE server |
| Generate a development JWT |
| Print all active tools grouped by domain |
Available Tools
Financial Markets
Powered by Alpha Vantage and CoinGecko.
Requires: ALPHA_VANTAGE_API_KEY
Tool | Description |
| US equity price, volume, change % |
| Currency pair exchange rate (ISO 4217) |
| Crypto price, market cap, 24h change |
| Financial headlines with sentiment scores |
Example:
{ "tool": "get_stock_quote", "arguments": { "ticker": "NVDA" } }Web3 / DeFi
Powered by Alchemy, OpenSea, and Blur.
Requires: ALCHEMY_API_KEY, OPENSEA_API_KEY
Tool | Description |
| Best floor across OpenSea + Blur (ETH, Base, Arbitrum) |
| Last N sales with traits and marketplace |
| Multi-chain token + NFT holdings, ENS resolution |
| Uniswap V2/V3 pool reserves and price ratio |
| Trade slippage estimates per size |
Example:
{ "tool": "get_nft_floor", "arguments": { "collection_slug": "boredapeyachtclub" } }Developer Tools
Powered by the GitHub API.
Requires: GITHUB_TOKEN
Tool | Description |
| Stars, forks, issues, language, last commit |
| PR diff summary, reviewers, CI checks, merge status |
| Latest GitHub Actions runs per branch |
| Active deployment URL and status |
Example:
{ "tool": "get_pipeline_status", "arguments": { "repo": "vercel/next.js", "branch": "canary" } }Healthcare (FHIR)
Powered by HAPI FHIR R4.
Requires: nothing (defaults to public sandbox) or FHIR_BASE_URL for custom endpoints.
HIPAA Notice: All healthcare tools connect to a public sandbox with synthetic data only. No real patient health information (PHI) is accessed. For production use, replace
FHIR_BASE_URLwith a HIPAA-compliant EHR endpoint and configure appropriate SMART on FHIR OAuth 2.0 credentials.
Tool | Description |
| Demographic patient search |
| Vitals and lab results by patient |
| Active medication list by patient |
Example:
{ "tool": "lookup_patient", "arguments": { "name": "Smith", "birth_date": "1980-01-15" } }Authentication
Authentication is enabled by default. Every tool call must carry a valid JWT.
Production
Set MCP_JWT_SECRET to a strong secret. The server refuses to start in production mode without it.
Development
Option A — disable auth entirely (local only):
AUTH_DISABLED=trueOption B — use a dev JWT:
npx mcp-suite gen-tokenPass the generated token in the MCP request _meta field (stdio) or the Authorization: Bearer header (HTTP).
JWT structure
{
"sub": "your-client-id",
"scope": "mcp:tools",
"iat": 1713484800,
"exp": 1716076800
}Architecture
MCP Clients (Claude Desktop · Cursor · Windsurf · Custom Agents)
│ MCP Protocol
┌───────▼────────────────────────────────────────┐
│ Transport Layer (stdio | HTTP + SSE) │
├────────────────────────────────────────────────┤
│ Auth Middleware (JWT validation / bypass) │
├────────────────────────────────────────────────┤
│ Tool Registry (register · list · route) │
├──────────┬──────────┬──────────┬───────────────┤
│Financial │ Web3 │ DevTools │ Healthcare │
├──────────┴──────────┴──────────┴───────────────┤
│ Shared: Rate Limiter · Cache · Logger · Errors │
└─────────────────────────────────────────────────┘
│ │ │ │
Alpha Vantage Alchemy GitHub API HAPI FHIR
CoinGecko OpenSea
BlurCaching: LRU + TTL in-process cache (node-cache). TTLs are domain-appropriate (15s for crypto, 300s for GitHub repo stats).
Rate limiting: Token-bucket per domain protects free-tier API quotas.
Error types:
AuthError,ValidationError,DomainUnavailableError,UpstreamError,RateLimitError— all produce structured MCP error responses.Logging: Structured JSON on every tool call: domain, tool name, latency, cache hit, status.
Adding a Domain
Each domain follows the same pattern. To add a new domain:
Create
src/domains/[name]/withindex.ts,schemas.ts,client.ts, andtools/Export a
Domainobject:
export const myDomain: Domain = {
name: 'my-domain',
isAvailable: () => !!config.MY_API_KEY,
registerTools: (server) => { /* server.tool(...) calls */ }
}Register it in
src/server.tsDocument tools in
docs/API.md
See docs/TDD.md §5 and docs/CODING_STANDARDS.md for the full pattern.
Development
git clone https://github.com/ayenisholah/mcp-suite.git
cd mcp-suite
npm install
cp .env.example .env # fill in your API keys
npm run build # compile TypeScript → dist/
npm run dev # watch mode
npm run typecheck # type check without emit
npm run lint # ESLint
npm test # unit tests (Vitest)
npm run test:coverage # tests + coverage report
# Integration tests — hits real APIs, requires .env keys
RUN_INTEGRATION=true npm testHTTP Transport Endpoints
When running with --transport http:
Endpoint | Auth | Description |
| No | Per-domain availability status |
| Yes | All registered tools, grouped by domain |
| Yes | MCP protocol endpoint (SSE) |
Error Reference
Code | Description |
| JWT missing, expired, or invalid signature |
| Input failed Zod schema validation |
| Domain API key not configured at startup |
| Per-domain rate limit exceeded |
| External API returned an error or timed out |
License
MIT — see LICENSE
Contributing
Issues and PRs welcome. Please read docs/CODING_STANDARDS.md before submitting.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/mcp-nexus/mcp-suite'
If you have feedback or need assistance with the MCP directory API, please join our Discord server