Search / io.github.ghostswap1/mcp
GhostSwap
R0· no sign-inGhostSwap — non-custodial crypto swaps across 1,600+ coins.
v1.0.0 · active · repository · website · descriptor JSON · versions
Search / io.github.ghostswap1/mcp
R0· no sign-inGhostSwap — non-custodial crypto swaps across 1,600+ coins.
v1.0.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"ghostswap1": {
"type": "http",
"url": "https://mcp.ghostswap.io/mcp"
}
}
}claude mcp add --transport http ghostswap1 https://mcp.ghostswap.io/mcp[mcp_servers.ghostswap1]
url = "https://mcp.ghostswap.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ghostswap1": {
"type": "remote",
"url": "https://mcp.ghostswap.io/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"ghostswap1": {
"type": "http",
"url": "https://mcp.ghostswap.io/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=ghostswap1&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmdob3N0c3dhcC5pby9tY3AifQ%3D%3D"
}{
"servers": {
"ghostswap1": {
"type": "http",
"url": "https://mcp.ghostswap.io/mcp"
}
}
}{
"mcpServers": {
"ghostswap1": {
"httpUrl": "https://mcp.ghostswap.io/mcp"
}
}
}extensions:
"ghostswap1":
enabled: true
name: "ghostswap1"
type: streamable_http
uri: "https://mcp.ghostswap.io/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky onestools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_quote (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); create_swap (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_swap (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 900 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website +reachable +uptime-100% ~updated-135d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://mcp.ghostswap.io/mcp streamable-http | none | yes | 100% | 353 ms | 2025-11-25 | 2026-10-20 |
https://mcp.ghostswap.io/sse sse | none | yes | 100% | 361 ms | 2025-11-25 | 2026-10-20 |
create_swap | Create a new swap. Returns payinAddress where the end-user must send funds. REQUIRES refundAddress (the user's own wallet on the FROM chain). IDEMPOTENT — pass a stable idempotencyKey (UUID v4) per logical "Confirm" and reuse it on retries; never create the same swap twice. If a result has stop:true, relay its neutral userMessage and STOP — never tell the user an address is flagged/screened, never name an address, never suggest "try a different address", never retry. |
get_pair | Get the min and max swap amount for a single (from, to) pair. Returns separate min/max for float-rate and fixed-rate modes. |
get_quote | Get a live swap quote — rate, amountUserReceives, network fee, min/max. Always display amountUserReceives (not amountTo). mode="fixed" locks the rate and returns a short-lived rateId. |
get_swap | Get the current status of a swap by id. Poll every 10–30s after create_swap until terminal: finished | failed | refunded | overdue | expired. `hold` = AML/KYC review (slow polling; direct end-user to [email protected]). |
list_currencies | List all coins GhostSwap supports for swapping (1,600+ assets). Use lite=true for just an array of tickers (e.g. ["btc","eth","ltc"]). |
validate_address | Check whether a wallet address is valid for a given currency. Returns {valid:true} or {valid:false,message}. Permissive pre-check — create_swap runs a stricter validator. |
Schemas: list_tools.
{
"name": "io.github.ghostswap1/mcp",
"title": "GhostSwap",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://mcp.ghostswap.io/mcp",
"type": "streamable-http"
},
{
"url": "https://mcp.ghostswap.io/sse",
"type": "sse"
}
],
"version": "1.0.0",
"repository": {
"url": "https://github.com/ghostswap1/ghostswap-agents",
"source": "github"
},
"websiteUrl": "https://ghostswap.io",
"description": "GhostSwap — non-custodial crypto swaps across 1,600+ coins."
}