它是由 Stainless 生成的。
你可以通过 npx 直接运行 MCP 服务器:
export COINGECKO_PRO_API_KEY="我的专业API密钥"
export COINGECKO_DEMO_API_KEY="我的演示API密钥"
export COINGECKO_ENVIRONMENT="pro"
npx -y @coingecko/coingecko-mcp@latest
在 modelcontextprotocol.io 上有一个现有的客户端列表。如果你已经有了一个客户端,请查阅其文档以安装 MCP 服务器。
对于具有配置 JSON 的客户端,可能看起来像这样:
{
"mcpServers": {
"coingecko_api": {
"command": "npx",
"args": ["-y", "@coingecko/coingecko-mcp", "--client=claude", "--tools=dynamic"],
"env": {
"COINGECKO_PRO_API_KEY": "我的专业API密钥",
"COINGECKO_DEMO_API_KEY": "我的演示API密钥",
"COINGECKO_ENVIRONMENT": "pro"
}
}
}
}
有两种方式可以将端点作为工具暴露在 MCP 服务器中:
你可以在命令行上运行该包来发现并过滤 MCP 服务器暴露的一组工具。这在大型 API 中非常有用,因为一次性包含所有端点可能会超出 AI 的上下文窗口。
你可以按多个方面进行过滤:
--tool 按名称包含特定工具--resource 包含特定资源下的所有工具,可以使用通配符,例如 my.resource*--operation 只包括读取(获取/列表)或写入操作如果你指定 --tools=dynamic 给 MCP 服务器,而不是将 API 中的每个端点暴露为一个工具,它将暴露以下工具:
list_api_endpoints - 发现可用端点,可选地通过搜索查询进行过滤get_api_endpoint_schema - 获取特定端点的详细模式信息invoke_api_endpoint - 使用适当的参数执行任何端点这允许你将完整的 API 端点集提供给你的 MCP 客户端,而无需一次性加载所有模式到上下文中。相反,LLM 将自动使用这些工具一起搜索、查找和动态调用端点。然而,由于模式的间接性,它可能比显式导入工具时更难以提供正确的属性。因此,你可以选择显式工具、动态工具或两者。
更多信息请参阅 --help。
所有这些命令行选项都可以重复、组合在一起,并且有相应的排除版本(例如 --no-tool)。
使用 --list 查看可用工具列表,或者查看下面的内容。
不同的客户端有不同的能力来处理任意工具和模式。
你可以使用 --client 参数指定你正在使用的客户端,MCP 服务器会自动提供与该客户端更兼容的工具和模式。
--client=<类型>:基于已知的 MCP 客户端设置所有功能
openai-agents、claude、claude-code、cursor--client=cursor此外,如果你的客户端不在上述列表中,或者随着时间的推移,客户端变得更好了,你可以手动启用或禁用某些功能:
--capability=<名称>:指定单个客户端功能
top-level-unions:启用工具模式中的顶级联合支持valid-json:启用 JSON 字符串解析作为参数refs:启用模式中的 $ref 指针支持unions:启用模式中的联合类型(anyOf)支持formats:启用模式中的格式验证(如 date-time、email)tool-name-length=N:将最大工具名称长度设置为 N 个字符--capability=top-level-unions --capability=tool-name-length=40--capability=top-level-unions,tool-name-length=40--resource=cards --operation=read
--resource=cards --no-tool=create_cards
--client=cursor --capability=tool-name-length=40
--resource=cards,accounts --operation=read --tag=kyc --no-tool=create_cards
使用 --transport=http 启动客户端会将服务器作为一个远程服务器使用流式 HTTP 传输启动。--port 设置可以选择它运行的端口,而 --socket 设置允许它在 Unix 套接字上运行。
授权可以通过以下标头提供:
| 标头 | 等效客户端选项 | 安全方案 |
|---|---|---|
x-cg-pro-api-key | proAPIKey | proKeyAuth |
x-cg-demo-api-key | demoAPIKey | demoKeyAuth |
假设服务器托管在 http://localhost:3000,这个服务器的配置 JSON 可能如下所示:
{
"mcpServers": {
"coingecko_coingecko_typescript_api": {
"url": "http://localhost:3000",
"headers": {
"x-cg-pro-api-key": "我的专业API密钥"
}
}
}
}
用于过滤工具和指定客户端的命令行参数也可以作为 URL 中的查询参数使用。 例如,为了排除特定工具同时包含其他工具,可以使用以下 URL:
http://localhost:3000?resource=cards&resource=accounts&no_tool=create_cards
或者,为了配置 Cursor 客户端并自定义最大工具名称长度,可以使用以下 URL:
http://localhost:3000?client=cursor&capability=tool-name-length%3D40
// 导入服务器、生成的端点或初始化函数
import { server, endpoints, init } from "@coingecko/coingecko-mcp/server";
// 导入特定工具
import getAssetPlatforms from "@coingecko/coingecko-mcp/tools/asset-platforms/get-asset-platforms";
// 初始化服务器和所有端点
init({ server, endpoints });
// 手动启动服务器
const transport = new StdioServerTransport();
await server.connect(transport);
// 或者使用特定工具初始化自己的服务器
const myServer = new McpServer(...);
// 定义自己的端点
const myCustomEndpoint = {
tool: {
name: 'my_custom_tool',
description: '我的自定义工具',
inputSchema: zodToJsonSchema(z.object({ a_property: z.string() })),
},
handler: async (client: client, args: any) => {
return { myResponse: 'Hello world!' };
})
};
// 使用自定义端点初始化服务器
init({ server: myServer, endpoints: [getAssetPlatforms, myCustomEndpoint] });
以下工具在此 MCP 服务器中可用。
asset_platforms:get_asset_platforms (read):此端点允许你查询 CoinGecko 上的所有资产平台coins:get_id_coins (read):此端点允许你基于特定的硬币ID查询 CoinGecko 硬币页面上的所有元数据(图像、网站、社交媒体、描述、合约地址等)和市场数据(价格、ATH、交易所行情等)coins.categories:get_list_coins_categories (read):此端点允许你查询 CoinGecko 上的所有硬币类别coins.list:get_new_coins_list (read):此端点允许你查询最近在 CoinGecko 上列出的最新 200 枚硬币coins.markets:get_coins_markets (read):此端点允许你查询所有支持的硬币及其价格、市值、成交量和市场相关数据coins.top_gainers_losers:get_coins_top_gainers_losers (read):此端点允许你查询在特定时间段内价格涨幅和跌幅最大的前 30 枚硬币coins.contract:get_coins_contract (read):此端点允许你基于资产平台和特定代币合约地址查询 CoinGecko 硬币页面上的所有元数据(图像、网站、社交媒体、描述、合约地址等)和市场数据(价格、ATH、交易所行情等)coins.contract.market_chart:get_range_contract_coins_market_chart (read):此端点允许你基于资产平台和特定代币合约地址,在 UNIX 时间范围内获取历史图表数据,包括价格、市值和 24 小时成交量coins.history:get_coins_history (read):此端点允许你基于特定硬币ID查询硬币在给定日期的历史数据(价格、市值、24 小时成交量等)coins.market_chart:get_range_coins_market_chart (read):此端点允许你基于特定硬币ID,在 UNIX 时间范围内获取硬币的历史图表数据,包括价格、市值和 24 小时成交量coins.ohlc:get_range_coins_ohlc (read):此端点允许你基于特定硬币ID,在时间戳范围内获取硬币的 OHLC 图表(开盘价、最高价、最低价、收盘价)exchanges:get_id_exchanges (read):此端点允许你基于交易所ID查询交易所的数据(名称、成立年份、国家等)、比特币交易量和前 100 名的行情get_list_exchanges (read):此端点允许你查询所有交易所的ID和名称exchanges.tickers:get_exchanges_tickers (read):此端点允许你基于交易所ID查询交易所的行情exchanges.volume_chart:get_range_exchanges_volume_chart (read):此端点允许你基于交易所ID,通过指定 UNIX 时间范围查询历史成交量图表数据(比特币)global:get_global (read):此端点允许你查询加密货币的全球数据,包括活跃的加密货币、市场、总加密货币市值等nfts:get_id_nfts (read):此端点允许你基于 NFT 收藏品ID查询所有 NFT 数据(名称、地板价、24 小时成交量等)get_list_nfts (read):此端点允许你查询 CoinGecko 上所有支持的 NFT 的ID、合约地址、名称、资产平台ID和符号get_markets_nfts (read):此端点允许你查询 CoinGecko 上所有支持的 NFT 收藏品及其地板价、市值、成交量和市场相关数据nfts.market_chart:get_nfts_market_chart (read):此端点允许你基于距离现在的天数查询 NFT 收藏品的历史市场数据,包括地板价、市值和 24 小时成交量onchain.categories:get_onchain_categories (read):此端点允许你查询 GeckoTerminal 上的所有支持类别get_pools_onchain_categories (read):此端点允许你基于提供的类别ID查询所有池子onchain.networks:get_onchain_networks (read):此端点允许你查询 GeckoTerminal 上的所有支持网络onchain.networks.new_pools:get_networks_onchain_new_pools (read):此端点允许你查询 GeckoTerminal 上所有网络中的最新池子get_network_networks_onchain_new_pools (read):此端点允许你基于提供的网络查询所有最新池子onchain.networks.dexes:get_networks_onchain_dexes (read):此端点允许你基于提供的网络查询 GeckoTerminal 上的所有支持去中心化交易所(DEXs)onchain.networks.pools.multi:get_addresses_pools_networks_onchain_multi (read):此端点允许你基于提供的网络和池子地址查询多个池子onchain.networks.pools.info:get_pools_networks_onchain_info (read):此端点允许你基于提供的池子合约地址查询池子元数据(基础和报价代币详情、图像、社交媒体、网站、描述、合约地址等)onchain.networks.pools.ohlcv:get_timeframe_pools_networks_onchain_ohlcv (read):此端点允许你基于提供的池子地址查询池子的 OHLCV 图表(开盘价、最高价、最低价、收盘价、成交量)onchain.networks.pools.trades:get_pools_networks_onchain_trades (read):此端点允许你基于提供的池子地址查询过去 24 小时内的最后 300 笔交易onchain.networks.tokens.multi:get_addresses_tokens_networks_onchain_multi (read):此端点允许你基于提供的代币合约地址查询多个代币数据onchain.networks.tokens.info:get_tokens_networks_onchain_info (read):此端点允许你基于提供的代币合约地址查询代币元数据(名称、符号、CoinGecko ID、图像、社交媒体、网站、描述等)onchain.networks.tokens.top_holders:get_tokens_networks_onchain_top_holders (read):此端点允许你基于提供的代币合约地址查询顶级代币持有者onchain.networks.tokens.holders_chart:get_tokens_networks_onchain_holders_chart (read):此端点允许你基于提供的代币合约地址查询代币持有者的图表onchain.networks.tokens.ohlcv:get_timeframe_tokens_networks_onchain_ohlcv (read):此端点允许你基于提供的代币地址查询代币的 OHLCV 图表(开盘价、最高价、最低价、收盘价、成交量)onchain.networks.tokens.pools:get_tokens_networks_onchain_pools (read):此端点允许你基于提供的代币合约地址查询顶级池子onchain.networks.tokens.trades:get_tokens_networks_onchain_trades (read):此端点允许你基于提供的代币合约地址查询过去 24 小时内所有池子中的最后 300 笔交易onchain.pools.megafilter:get_pools_onchain_megafilter (read):此端点允许你基于各种过滤器查询所有网络上的池子onchain.pools.trending_search:get_pools_onchain_trending_search (read):此端点允许你查询所有网络上的热门搜索池子onchain.search.pools:get_search_onchain_pools (read):此端点允许你查询网络上的池子onchain.simple.networks.token_price:get_addresses_networks_simple_onchain_token_price (read):此端点允许你基于提供的代币合约地址查询代币的价格search:get_search (read):此端点允许你查询 CoinGecko 上列出的硬币、类别和市场search.trending:get_search_trending (read):此端点允许你查询 CoinGecko 上过去 24 小时内的热门搜索硬币、NFT 和类别simple.price:get_simple_price (read):此端点允许你使用独特的 Coin API ID 查询一个或多个硬币的价格simple.supported_vs_currencies:get_simple_supported_vs_currencies (read):此端点允许你查询 CoinGecko 上所有支持的货币simple.token_price:get_id_simple_token_price (read):此端点允许你使用代币合约地址查询一个或多个代币的价格