Back to the catalog

MyMCPTools

Find MCP servers and check whether they actually respond, via live handshake probes.

Open source Repository Open in the app JSON README (API)

About

Find MCP servers and check whether they actually respond, via live handshake probes.

Details

Kind
MCP servers
Topic
No topic detected
Publisher
shibley
Origin
official
Category
ferramentas
Transport
http
Version
0.1.1
Last push
2026-07-30T07:41:04Z
Repository state
ativo
Language
JavaScript
License
MIT
Added
2026-08-29 04:01:23
Updated
2026-08-29 04:01:23
Origin id
io.github.shibley/mymcptools

README

# MyMCPTools MCP Server

An MCP server for finding other MCP servers — and, more usefully, for checking whether the one you are about to recommend is actually reachable.

Every uptime figure it returns comes from a real MCP handshake against the server's remote endpoint, not from self-reported metadata in a README.

Backed by [mymcptools.com](https://mymcptools.com). No API key required.

## Install

### Remote endpoint (recommended — nothing to install)

The server is hosted. If your client speaks Streamable HTTP, point it straight at:

```
https://mymcptools.com/api/mcp
```

Stateless, read-only, no auth, no API key. This is also the entry published to the
[official MCP Registry](https://registry.modelcontextprotocol.io) as
`io.github.shibley/mymcptools`.

### Local stdio adapter

The code in this repo is a thin stdio adapter over that same endpoint, for clients
that don't speak Streamable HTTP yet. **It is not on npm yet**, so build it from
source (Node.js 18+):

```bash
git clone https://github.com/shibley/mymcptools-mcp-server.git
cd mymcptools-mcp-server
npm install && npm run build
```

Then point your client at the built entrypoint:

```json
{
  "mcpServers": {
    "mymcptools": {
      "command": "node",
      "args": ["/absolute/path/to/mymcptools-mcp-server/dist/index.js"]
    }
  }
}
```

Add that to `claude_desktop_config.json` (Claude Desktop), `.cursor/mcp.json` (Cursor), or your client's equivalent.

Set `MYMCPTOOLS_MCP_URL` to override the upstream endpoint the adapter talks to.

## Tools

| Tool | What it answers |
|---|---|
| `search_mcp_servers` | Which servers match this keyword, category, client integration or install type? |
| `get_mcp_server` | Full entry for one server: install command, repo, supported clients, current probe verdict. |
| `get_server_status` | Is this server reachable right now? Verdict, exposed tool count, handshake latency, negotiated protocol version. |
| `get_server_history` | Trailing probe history and a daily uptime sparkline for one server. |
| `list_server_incidents` | Reconstructed outages — contiguous runs of failed probes, with start, end and duration. |
| `list_schema_drift` | Which servers added, removed or changed tools between probes. Useful for spotting breaking changes. |
| `list_categories` | Every category and client integration, with counts. Returns the valid slugs for the filters above. |
| `get_catalog_stats` | Population-level health: verdict breakdown, transport mix, latency percentiles. |

## What the probe data does and does not cover

Worth stating plainly, because the numbers are easy to misread:

- The catalog carries **~2,700 entries**, but only **~44 are probeable** — that is, they publish a remote endpoint something can actually connect to.
- The rest are **local-only servers** (stdio, run via `npx` or `docker` on your machine). There is no remote endpoint to handshake against, so they are reported as `UNPROBEABLE` rather than assigned a made-up status. For those, `get_mcp_server` falls back to a static repo-freshness signal.
- `UNPROBEABLE` therefore means "not remotely checkable", **not** "broken".

So treat the live-verification tools as high-confidence for remote/hosted servers, and treat the catalog entry itself as the useful part for local ones.

## Verdicts

| Verdict | Meaning |
|---|---|
| `GOOD` | Handshake succeeded and the server listed its tools. |
| `WARN` | Reachable, but something was off — slow handshake or a degraded response. |
| `AUTH_REQUIRED` | Endpoint is live but needs credentials before it will list tools. |
| `DOWN` | Endpoint is published but the handshake failed. |
| `UNPROBEABLE` | No remote endpoint to probe — typically a local stdio server. |

## Development

```bash
npm install
npm run build
```

Smoke-test the built server over stdio:

```bash
printf '%s\n%s\n%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' \
  '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
  | node dist/index.js
```

## License

MIT

More