GetMyCert MCP Server
A Model Context Protocol server that gives any MCP-compatible AI agent (Claude Desktop, Claude Code, Cursor, Windsurf, Continue, Zed, etc.) live access to 13,072 IT certification practice questions across 27 certifications on GetMyCert.com.
Pay-per-call via x402 micropayments (USDC on Base, no signup) — or use a traditional prepaid API key.
Tools exposed
| Tool | Description |
|---|---|
get_cert_questions | Fetch 1-25 multiple-choice questions for a certification, optionally filtered by difficulty. |
list_certifications | List all 27 available certifications and their question counts. |
Covered certifications
AWS (SAA, SysOps, Developer, Cloud Practitioner, Solutions Architect Pro), CompTIA (A+, Network+, Security+, CySA+, CASP+, PenTest+, Cloud+, Data+, Linux+, Server+), Google Cloud (ACE, PCA), Azure (Fundamentals, Administrator, Developer, Security), Cisco CCNA, Kubernetes CKAD, PMP, CISSP, CEH, ITIL 4.
Install
From npm (recommended)
npm install -g @getmycert/mcp-server
From source
git clone https://github.com/getmycert/mcp-server.git
cd mcp-server
npm install
npm run build
The build emits an executable at dist/index.js.
Configure
You need one of the two payment methods.
Option 1 — x402 micropayments (recommended)
-
Generate a hot wallet private key:
openssl rand -hex 32 -
Fund the wallet's Base-mainnet address with a few dollars of USDC. Each batch of questions costs ~$0.01.
-
Set
GETMYCERT_WALLET_PRIVATE_KEY=0x<your_key>in your agent's MCP config (see snippets below).
Option 2 — Prepaid API key
- Get an API key at https://getmycert.com/dashboard/api-keys.
- Set
GETMYCERT_API_KEY=<your_key>in the MCP config.
If both are configured, the server prefers x402 and falls back to the API key on failure.
All available env vars are documented in .env.example.
Add to your agent
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"getmycert": {
"command": "npx",
"args": ["-y", "@getmycert/mcp-server"],
"env": {
"GETMYCERT_WALLET_PRIVATE_KEY": "0xYOUR_PRIVATE_KEY_HERE"
}
}
}
}
Restart Claude Desktop. You should see the GetMyCert tools listed under the hammer icon.
Claude Code
Add to ~/.claude.json (global) or .claude.json in your project:
{
"mcpServers": {
"getmycert": {
"command": "npx",
"args": ["-y", "@getmycert/mcp-server"],
"env": {
"GETMYCERT_API_KEY": "gmc_live_..."
}
}
}
}
Or one-liner:
claude mcp add getmycert -- npx -y @getmycert/mcp-server
Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"getmycert": {
"command": "npx",
"args": ["-y", "@getmycert/mcp-server"],
"env": {
"GETMYCERT_WALLET_PRIVATE_KEY": "0xYOUR_PRIVATE_KEY_HERE"
}
}
}
}
Windsurf / Continue / Zed
These all use the same stdio-MCP shape. Point them at npx -y @getmycert/mcp-server with the same env block.
Local dev build
If you cloned from source, replace the command/args with your built path:
{
"mcpServers": {
"getmycert": {
"command": "node",
"args": ["/absolute/path/to/mcp-server/dist/index.js"],
"env": {
"GETMYCERT_WALLET_PRIVATE_KEY": "0x..."
}
}
}
}
Usage examples
Once installed, your agent can call the tools directly. Example prompts:
"Give me 5 hard CISSP practice questions."
"Quiz me on AWS SAA — 10 medium-difficulty questions, hide answers until I respond."
"List every CompTIA certification on GetMyCert with question counts."
How x402 payment works
- Agent calls
get_cert_questions. - The MCP server hits
https://getmycert.com/api/v1/x402. - Server replies
HTTP 402 Payment Requiredwith the cost (e.g. 10000 micro-USDC = $0.01), recipient address, and USDC contract. - The MCP server signs an EIP-3009
transferWithAuthorizationfrom the configured wallet and retries withX-PAYMENT: <base64-payload>. - The facilitator settles on-chain; GetMyCert returns the questions.
The GETMYCERT_MAX_PAYMENT env var caps how much any single call may charge
(default 100000 = $0.10).
Environment variables
| Variable | Required | Default | Purpose |
|---|---|---|---|
GETMYCERT_WALLET_PRIVATE_KEY | one of | — | 32-byte hex private key for the Base wallet that pays the x402 endpoint. |
GETMYCERT_API_KEY | one of | — | Prepaid API key fallback. |
GETMYCERT_RPC_URL | no | https://mainnet.base.org | Base RPC endpoint. |
GETMYCERT_X402_URL | no | https://getmycert.com/api/v1/x402 | x402 endpoint override. |
GETMYCERT_API_URL | no | Supabase edge function | API-key endpoint override. |
GETMYCERT_CERTS_URL | no | https://getmycert.com/api/v1/certifications | Public catalog endpoint override. |
GETMYCERT_MAX_PAYMENT | no | 100000 | Max micro-USDC any one call may pay. |
Hosted / remote MCP
The package also exports createServer() so you can host it behind an HTTP
transport (SSE or Streamable HTTP) without modifying the tool code:
import { createServer } from "@getmycert/mcp-server";
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
const server = createServer();
// wire SSEServerTransport into your HTTP framework of choice
Submit to registries
This server is designed to be listed on community MCP registries.
- Smithery.ai: https://smithery.ai/new
- MCP.so: https://mcp.so/submit
- Awesome MCP Servers: open a PR at https://github.com/modelcontextprotocol/servers
- Anthropic MCP Directory: https://www.anthropic.com/mcp (submit via the contact form)
License
MIT — see LICENSE.
Server Config
{
"mcpServers": {
"getmycert-questions": {
"command": "npx",
"args": [
"-y",
"@getmycert/mcp-server"
],
"env": {
"GETMYCERT_API_KEY": "<optional-api-key>"
}
}
}
}