mctop

by mctop-org

Not rated
GitHub

About

A terminal client for MCP servers: explore, call, and CI-test any server from your shell.

Details

Author
mctop-org
Categories
Developer Tools

Setup

Install mctop in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/mctop-org/mctop

Follow the installation instructions in the repository README, then restart your MCP client.

A terminal client for MCP servers. Connect to any server, browse its tools, resources, and prompts, call them, and watch the result, without leaving the shell. Then assert the server's contract in CI so a renamed tool or a drifted schema fails the build instead of breaking an agent in production.

Thinkcurlandk9s, but for the Model Context Protocol.

- Explorea server interactively: browse tools, resources, and prompts, fill a tool's arguments in a schema-driven form, and read the result.
- Scriptit headless:mctop lsto list,mctop callfor one-shot calls.
- Testit in CI:mctop test spec.yamlruns a contract and exits non-zero when it breaks.

curl -fsSL https://mctop.org/install | sh
brew install mctop-org/tap/mctop go install github.com/mctop-org/mctop@latest

Thenmctop upgradekeeps it current, however you installed it.

mctop <target> open the interactive client against a server mctop ls <target> list tools, resources, and prompts mctop call <target> <tool> call one tool and print the result mctop login <url> log in to an OAuth-protected server mctop test <spec.yaml> run a contract, exit 0 on pass, 1 on fail mctop record <target> browse a server and save the calls as a spec mctop upgrade update to the latest release

A target is either a command to spawn ("uvx mcp-server-time") or anhttp(s)://URL. For an older server that needs the legacy SSE transport, add--sse.

mctop call "uvx mcp-server-time" get_current_time timezone=UTC

Arguments arekey=valuepairs (values that look like JSON, such as numbers, booleans, arrays, and objects, are typed; anything else is a string), or a single--json '{...}'object.

Runmctop <target>with no subcommand to open the full-screen client: browse tools, resources, and prompts; press enter on a tool to fill its arguments in a schema-driven form and run it; read the result, then go again.

↑↓ move enter open / search tab switch section T trace ? keys q quit

Results render as readable fields and tables instead of raw JSON. When the result is a list of records,/select a row andenterexpands it into a full, untruncated view;esccollapses back to the list. Presstfor the raw JSON,yto copy,rto re-run,eto edit the arguments, andesc(or) to go back.

PressTto see the raw protocol: every JSON-RPC frame that crossed the wire, each tagged with its direction, method, and time, above its JSON. It reads like the web Inspector's network pane, without leaving the terminal, so you can see exactly what a server sent back when a call surprises you.

Vim motions (h/j/k/l,g/G) are on by default;Vtoggles them and the choice is remembered. The arrow keys always work either way. Press?for the full list of keys.

For OAuth-protected servers, log in once and mctop handles the token after that:

mctop login https://api.example.com/mcp # opens the browser, caches the token mctop ls https://api.example.com/mcp # uses it automatically mctop logout https://api.example.com/mcp # forgets it

The token is cached per host and refreshed as needed, so you log in once per server, not per command. For servers that take a static token instead, pass it with-H(repeatable):

mctop ls https://api.example.com/mcp -H "Authorization: Bearer $TOKEN"

A spec describes what a server must expose and how its calls must behave.mctop testexits non-zero when the contract breaks, so it gates a build.

server: url: "https://api.example.com/mcp" # sse: true # for a legacy HTTP+SSE server headers: Authorization: "Bearer ${TOKEN}" # expanded from the environment expect: tools: [search, fetch] calls: - tool: search args: { query: "hello" } assert: not_error: true contains: "results"

You don't have to write a spec by hand:mctop record <target> -o spec.yamlopens the interactive client and saves every tool call you make as a spec step, asserting the error status it observed. Headers passed with-Hare written as$NAMEenvironment references, so the file is safe to commit. Sharpen the recorded steps withcontainsassertions where it strengthens the contract.

Theexamples/directory has runnable specs and a small demo server you can point mctop at:

go run ./examples/demoserver mctop ls http://localhost:8080/mcp

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Create crafted UI components inspired by the best 21st.dev design engineers.

Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server

An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .

MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent

ALAPI MCP Tools,Call hundreds of API interfaces via MCP

AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform

MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.

APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.

One shared context layer for AI agents and humans — live API specs, DB schemas, and versioned contracts across repos so every agent and teammate works from the same source of truth.

Build and deploy full-stack Next.js apps with 98 tools for React, AWS, and MongoDB

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.