返回市场
MCP服务器

MCP服务器

作者:coingecko37 星标更新:2025-11-13

项目介绍

Coingecko TypeScript MCP Server

它是由 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

通过 MCP 客户端

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 服务器中:

  1. 每个端点暴露一个工具,并根据需要进行过滤
  2. 暴露一组工具,动态发现并调用 API 端点

过滤端点和工具

你可以在命令行上运行该包来发现并过滤 MCP 服务器暴露的一组工具。这在大型 API 中非常有用,因为一次性包含所有端点可能会超出 AI 的上下文窗口。

你可以按多个方面进行过滤:

  • --tool 按名称包含特定工具
  • --resource 包含特定资源下的所有工具,可以使用通配符,例如 my.resource*
  • --operation 只包括读取(获取/列表)或写入操作

动态工具

如果你指定 --tools=dynamic 给 MCP 服务器,而不是将 API 中的每个端点暴露为一个工具,它将暴露以下工具:

  1. list_api_endpoints - 发现可用端点,可选地通过搜索查询进行过滤
  2. get_api_endpoint_schema - 获取特定端点的详细模式信息
  3. invoke_api_endpoint - 使用适当的参数执行任何端点

这允许你将完整的 API 端点集提供给你的 MCP 客户端,而无需一次性加载所有模式到上下文中。相反,LLM 将自动使用这些工具一起搜索、查找和动态调用端点。然而,由于模式的间接性,它可能比显式导入工具时更难以提供正确的属性。因此,你可以选择显式工具、动态工具或两者。

更多信息请参阅 --help

所有这些命令行选项都可以重复、组合在一起,并且有相应的排除版本(例如 --no-tool)。

使用 --list 查看可用工具列表,或者查看下面的内容。

指定 MCP 客户端

不同的客户端有不同的能力来处理任意工具和模式。

你可以使用 --client 参数指定你正在使用的客户端,MCP 服务器会自动提供与该客户端更兼容的工具和模式。

  • --client=<类型>:基于已知的 MCP 客户端设置所有功能

    • 有效值:openai-agentsclaudeclaude-codecursor
    • 示例:--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

示例

  1. 过滤卡片上的读取操作:
--resource=cards --operation=read
  1. 排除特定工具同时包含其他工具:
--resource=cards --no-tool=create_cards
  1. 配置 Cursor 客户端并自定义最大工具名称长度:
--client=cursor --capability=tool-name-length=40
  1. 复杂过滤,多个标准:
--resource=cards,accounts --operation=read --tag=kyc --no-tool=create_cards

远程运行

使用 --transport=http 启动客户端会将服务器作为一个远程服务器使用流式 HTTP 传输启动。--port 设置可以选择它运行的端口,而 --socket 设置允许它在 Unix 套接字上运行。

授权可以通过以下标头提供:

标头等效客户端选项安全方案
x-cg-pro-api-keyproAPIKeyproKeyAuth
x-cg-demo-api-keydemoAPIKeydemoKeyAuth

假设服务器托管在 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):此端点允许你使用代币合约地址查询一个或多个代币的价格