TadpoleTools-MCP 服务器工具(塔德普尔工具MCP服务器)
一个基于Python的MCP服务器,集成了TapTools API,使AI模型能够通过标准化工具获取Cardano区块链数据,包括代币、NFT、市场统计数据和钱包信息。
服务介绍
TapTools API MCP
一个基于 Python 的模型上下文协议 (MCP) 服务器,提供对 TapTools API 的访问,使大型语言模型(如 Claude 或 GPT)能够获取与 Cardano 相关的数据(代币、NFT、市场信息等)。该服务器将 TapTools API 操作标准化为 MCP "工具",从而轻松集成到 AI 工作流中。
特性
- 异步实现:使用现代的 Python 异步模式和 httpx 进行非阻塞 IO。
- 安全认证:从环境变量或
.env文件中读取TAPTOOLS_API_KEY。 - MCP 就绪:将 TapTools 功能作为 "工具" 暴露给任何符合 MCP 规范的客户端。
- 代币操作:定价、顶级代币、市值数据、交易量统计等。
- NFT 操作:NFT 集合统计、交易、列表、分布等。
- 市场数据:关于交易量、地址、持有者等的汇总统计数据。
- 集成与链上:访问链上数据、区块信息、事件、DEX 交易对等。
- 钱包数据:投资组合头寸、代币/NFT 持有情况、交易历史、交易记录等。
快速开始
-
克隆仓库:
git clone https://github.com/yourusername/taptools-api-mcp.git cd taptools-api-mcp -
创建并激活虚拟环境:
python3 -m venv .venv source .venv/bin/activate # 在 Windows 上: .venv\Scripts\activate -
安装依赖:
pip install -e . -
设置您的 TapTools API 密钥:
- 选项 A:添加到您的
.env文件中:TAPTOOLS_API_KEY=your-real-taptools-api-key - 选项 B:设置环境变量:
export TAPTOOLS_API_KEY="your-real-taptools-api-key"
- 选项 A:添加到您的
-
运行 MCP 服务器:
python -m taptools_api_mcp默认情况下,它将在标准输入/输出 (stdio) 上运行,以便进行 MCP 集成。
-
测试连接(可选):
python test_connection.py
使用示例
如果您有一个 MCP 客户端(例如 mcp Python CLI 工具),您可以启动服务器并调用任何可用的工具:
# In one terminal, start the server:
python -m taptools_api_mcp
# In another terminal (or from the same, if you prefer):
mcp cli
一旦进入 mcp cli,您可以调用如下工具:
> tool verify_connection
这将验证您的 TapTools API 密钥是否有效且可访问。
例如,要获取代币市值信息:
> tool get_token_mcap {"unit": "lovelace"}
您应该会收到包含代币市值、价格、供应量等的 JSON 数据。
API 文档:MCP 工具
以下是一些可用的 MCP 工具及其参数和简要说明。这些工具必须使用正确的 JSON 负载调用。所有 JSON 请求必须与 src/taptools_api_mcp/models/ 中的 Pydantic 模型匹配。
1. verify_connection
- 描述:验证 TapTools API 认证。
- 参数:(无参数)
- 示例用法:
{ }
2. get_token_mcap
- 描述: 获取代币市值信息。
- 参数 (
TokenMcapRequest):{ "unit": "string" // 必填: 代币单位标识符 } - 示例用法:
{ "unit": "lovelace" }
3. get_token_holders
- 描述: 获取代币持有者的总数。
- 参数 (
TokenHoldersRequest):{ "unit": "string" // 必填: 代币单位标识符 } - 示例用法:
{ "unit": "lovelace" }
4. get_token_holders_top
- 描述: 获取顶级代币持有者。
- 参数 (
TokenTopHoldersRequest):{ "unit": "string", // 必填 "page": "number", // 可选 (默认 1) "per_page": "number"// 可选 (默认 20) } - 示例用法:
{ "unit": "some_token_unit", "page": 1, "per_page": 5 }
5. get_nft_asset_sales
- 描述: 获取NFT资产销售历史。
- 参数 (
NFTAssetSalesRequest):{ "policy": "string", // 必填: NFT策略ID "name": "string" // 可选: NFT名称 } - 示例用法:
{ "policy": "abc123polid", "name": "coolNFT" }
6. get_nft_collection_stats
- 描述: 获取NFT集合统计数据。
- 参数 (
NFTCollectionStatsRequest):{ "policy": "string" // 必填: NFT集合策略ID } - 示例用法:
{ "policy": "abc123polid" }
7. get_market_stats
- 描述: 获取全市场统计信息。
- 参数 (
MarketStatsRequest):{ "quote": "string" // 可选, 默认 "ADA" } - 示例用法:
{ "quote": "USD" }
8. get_integration_asset
- 描述: 通过ID获取资产详情(集成端点)。
- 参数 (
IntegrationAssetRequest):{ "id": "string" // 必填: 资产ID } - 示例用法:
{ "id": "asset123abc" }
9. get_asset_supply
- 描述: 获取链上资产供应量。
- 参数 (
AssetSupplyRequest):{ "unit": "string" // 必填: 代币单位标识符 } - 示例用法:
{ "unit": "lovelace" }
10. get_wallet_portfolio
- 描述: 获取钱包投资组合位置。
- 参数 (
WalletPortfolioPositionsRequest):{ "address": "string" // 必填: 钱包地址 } - 示例用法:
{ "address": "addr1xyz..." }
(如果需要,可以按照相同的格式添加更多关于代币、NFTs、链上等的端点。请参阅 src/taptools_api_mcp/models/ 文件夹以了解更多可能的请求。)
部署
您可以将此 Python MCP 服务器容器化或托管在诸如 AWS ECS、Azure 容器实例或 Google Cloud Run 等服务上。请确保将您的 TAPTOOLS_API_KEY 作为密钥安全存储。对于基于 Docker 的部署:
# Example Dockerfile snippet
FROM python:3.10-slim
WORKDIR /app
COPY . /app
RUN pip install -e .
# environment variable for TapTools API key
ENV TAPTOOLS_API_KEY=your-real-taptools-api-key
CMD ["python", "-m", "taptools_api_mcp"]
注意:根据 MCP 规范,服务器默认监听标准输入输出。对于高级部署或自定义集成,如果您的环境需要,您可以修改 server.py 以使用其他传输方式(如套接字)运行。