关于 Story SDK MCP Server
Story SDK MCP Server 为使用 Story Protocol IP 资产的开发者和 AI Agent 提供 SDK 操作工具,涵盖许可、资产注册、版税、争议、代币管理及 IPFS 元数据。
主要功能
- 01注册 IP 资产并附加许可条款
- 02铸造许可代币并估算费用
- 03管理 NFT 集合和 WIP 代币
- 04支付版税并领取收入
- 05将图像和元数据上传至 IPFS
适用场景
- 01将 NFT 注册为 Story IP 资产
- 02为 IP 资产铸造许可代币
- 03领取子 IP 资产产生的收入
MCP 相关
它向 MCP 客户端提供 Story Protocol SDK 工具,涵盖资产注册、许可、版税、争议和代币管理。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Story MCP Hub
此仓库是 Story Protocol 的 Model Context Protocol(MCP)服务中心。它提供统一的环境,用于运行和管理各种 MCP 服务,让 AI Agent 能够与 Story Protocol 生态系统交互。
项目结构
story-mcp-hub/
├── storyscan-mcp/ # MCP server for blockchain data queries via StoryScan
├── story-sdk-mcp/ # MCP server for Story Protocol SDK interactions
├── utils/ # Shared utilities for MCP servers
├── .venv/ # Python virtual environment
├── pyproject.toml # Project dependencies and configuration
├── .python-version # Python version specification
└── README.md # This file
graph TD
subgraph "MCP Hub"
style MCP Hub fill:#F5F5FF,stroke:#9999CC,stroke-width:2px,rx:10,ry:10
Agent["AI Agent<br>(Claude, IDEs, Tools)"]
style Agent fill:#E6E6FA,stroke:#9370DB,stroke-width:2px,rx:8,ry:8
end
subgraph "StoryScan MCP Server"
style StoryScan MCP Server fill:#F0F8FF,stroke:#87CEFA,stroke-width:2px,rx:10,ry:10
StoryscanService["StoryScan Service"]
style StoryscanService fill:#E6E6FA,stroke:#9370DB,stroke-width:2px,rx:8,ry:8
subgraph "StoryScan Tools"
style StoryScan Tools fill:#F0FFFF,stroke:#5F9EA0,stroke-width:2px,rx:10,ry:10
StoryscanToolset["Blockchain Data<br>get_transactions,<br>get_address_overview,<br>get_token_holdings,<br>get_nft_holdings,<br>get_stats,<br>interpret_transaction"]
style StoryscanToolset fill:#E0FFFF,stroke:#5F9EA0,stroke-width:2px,rx:8,ry:8
end
end
subgraph "Story SDK MCP Server"
style Story SDK MCP Server fill:#F5FFFA,stroke:#98FB98,stroke-width:2px,rx:10,ry:10
StoryService["Story Service"]
style StoryService fill:#E6E6FA,stroke:#9370DB,stroke-width:2px,rx:8,ry:8
subgraph "Story SDK Tools"
style Story SDK Tools fill:#F0FFF0,stroke:#90EE90,stroke-width:2px,rx:10,ry:10
IPFSTools["IPFS & Metadata<br>upload_image_to_ipfs<br>create_ip_metadata"]
style IPFSTools fill:#E0FFFF,stroke:#5F9EA0,stroke-width:2px,rx:8,ry:8
LicenseTools["License Management<br>get_license_terms,<br>mint_license_tokens,<br>get_license_minting_fee,<br>predict_minting_license_fee"]
style LicenseTools fill:#E0FFFF,stroke:#5F9EA0,stroke-width:2px,rx:8,ry:8
IPTools["IP & NFT Management<br>register, attach_license_terms,<br>mint_and_register_ip_with_terms,<br>create_spg_nft_collection"]
style IPTools fill:#E0FFFF,stroke:#5F9EA0,stroke-width:2px,rx:8,ry:8
TokenTools["Token & Revenue<br>deposit_wip, transfer_wip,<br>pay_royalty_on_behalf,<br>claim_all_revenue,<br>raise_dispute"]
style TokenTools fill:#E0FFFF,stroke:#5F9EA0,stroke-width:2px,rx:8,ry:8
end
end
subgraph "External Resources"
style External Resources fill:#FFF0F5,stroke:#FFB6C1,stroke-width:2px,rx:10,ry:10
IPFS[(IPFS/Pinata<br>Storage)]
style IPFS fill:#FFE4E1,stroke:#DB7093,stroke-width:2px,rx:15,ry:15
Blockchain[(Story Protocol<br>Blockchain)]
style Blockchain fill:#E0F8E0,stroke:#90EE90,stroke-width:2px,rx:15,ry:15
StoryScan[(StoryScan/Blockscout<br>API)]
style StoryScan fill:#E6F3FF,stroke:#87CEFA,stroke-width:2px,rx:15,ry:15
end
Agent <--MCP Protocol--> StoryService
Agent <--MCP Protocol--> StoryscanService
StoryscanService --> StoryscanToolset
StoryService --> IPFSTools
StoryService --> LicenseTools
StoryService --> IPTools
StoryService --> TokenTools
StoryscanToolset <--API Calls--> StoryScan
IPFSTools <--API Calls--> IPFS
LicenseTools <--RPC Calls--> Blockchain
IPTools <--RPC Calls--> Blockchain
TokenTools <--RPC Calls--> Blockchain
MCP 服务
StoryScan MCP 服务
提供用于查询区块链数据的工具,包括地址余额、交易和区块链统计数据。
工具:
get_transactions:获取某个地址的近期交易get_stats:获取当前区块链统计数据get_address_overview:全面了解某个地址,包括余额、代币信息和区块链活动get_token_holdings:获取某个地址持有的所有 ERC-20 代币,包括详细的代币信息和余额get_nft_holdings:获取某个地址持有的所有 NFT,包括系列信息和单个代币的元数据interpret_transaction:获取易于理解的区块链交易说明
Story SDK MCP 服务
提供用于与 Story Protocol 的 Python SDK 交互的工具。
工具:
IPFS 和元数据工具(需要 PINATA_JWT):
upload_image_to_ipfs:使用 Pinata API 将图像上传到 IPFS,并返回 URIcreate_ip_metadata:创建 NFT 和 IP 元数据,并将其上传到 IPFS
许可管理工具:
get_license_terms:检索指定 ID 的许可条款get_license_minting_fee:获取指定许可条款 ID 的铸造费用get_license_revenue_share:获取指定许可条款 ID 的商业收入分成比例mint_license_tokens:为指定 IP 和许可条款铸造许可代币(自动批准 WIP 代币)predict_minting_license_fee:预先计算指定 IP、许可条款和数量对应的许可铸造费用
IP 资产管理工具:
register:将 NFT 注册为 IP,并创建相应的 IP 记录attach_license_terms:为 IP 资产附加许可条款mint_and_register_ip_with_terms:铸造并注册带有许可条款的 IP
NFT 系列工具:
create_spg_nft_collection:创建新的 SPG NFT 系列,用于铸造和注册 IP 资产get_spg_nft_minting_token:获取 SPG NFT 合约要求的铸造费用
收入和版税工具:
pay_royalty_on_behalf:代表付款方 IP 资产向接收方 IP 资产支付版税(自动批准代币)claim_all_revenue:领取祖先 IP 的所有子级 IP 收入,可选择自动转账
争议工具:
raise_dispute:对某个 IP 资产提出争议(自动批准 WIP 保证金代币)
代币管理工具:
deposit_wip:将 IP 包装为 WIP 并存入钱包transfer_wip:向接收方转账 WIP 代币get_erc20_token_balance:获取某个账户持有的任意 ERC20 代币余额mint_test_erc20_tokens:如果合约具有公开的铸造或水龙头功能,则铸造测试用 ERC20 代币
设置
先决条件
- Python 3.12+
- UV 包管理器
安装
- 安装 UV 包管理器并安装环境:
curl -LsSf https://astral.sh/uv/install.sh | sh
- 克隆此仓库:
git clone https://github.com/piplabs/story-mcp-hub.git
cd story-mcp-hub
- 使用 UV 安装依赖项:
uv sync
- 为每个服务设置环境变量:
StoryScan MCP:
cd storyscan-mcp
cp .env.example .env
# Edit .env with your StoryScan API endpoint
Story SDK MCP:
cd story-sdk-mcp
cp .env.example .env
# Edit .env with your wallet private key, RPC provider URL, etc.
运行服务
StoryScan MCP 服务 Inspector
cd storyscan-mcp
uv run mcp dev server.py
Story SDK MCP 服务
cd story-sdk-mcp
uv run mcp dev server.py
与 MCP 客户端配合使用
按照以下说明,将 MCP 服务连接到各种兼容 MCP 的客户端。
Cursor
Cursor 实现了一个 MCP 客户端,支持通过 stdio 和 sse 传输方式连接任意数量的 MCP 服务。
在 Cursor 中添加 MCP 服务
- 前往
Cursor Settings>Features>MCP - 点击
+ Add New MCP Server按钮 - 填写表单:
- 在
Type下选择传输方式 - 在
Name字段中输入服务的昵称 - 根据传输方式,输入要运行的命令或服务的 URL
- 我们将使用
uv命令运行服务,因此请务必添加--directory标志,并指定服务的路径(示例:uv --directory ~/path/to/story-mcp-hub/storyscan-mcp run server.py)
- 在
项目专用 MCP 配置
你可以使用 .cursor/mcp.json 配置项目专用的 MCP 服务。该文件采用以下格式:
{
"mcpServers": {
"storyscan-mcp": {
"command": "uv",
"args": [
"--directory",
"~/path/to/story-mcp-hub/storyscan-mcp",
"run",
"server.py"
]
},
"story-sdk-mcp": {
"command": "uv",
"args": [
"--directory",
"~/path/to/story-mcp-hub/story-sdk-mcp",
"run",
"server.py"
]
}
}
}
在 Cursor 中使用 MCP 工具
如果 Composer Agent 判断 MCP 设置页面 Available Tools 下列出的 MCP 工具与当前任务相关,就会自动使用这些工具。若要主动调用工具,只需告诉 Agent 使用该工具,并通过名称或描述指明工具。
当 Agent 想要使用 MCP 工具时,会显示一条消息,请求你批准。
Claude Desktop
你可以通过编辑配置文件,将 Claude Desktop 配置为使用 MCP 服务。
在 Claude Desktop 中添加 MCP 服务
- 打开 Claude Desktop 配置文件:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
- 添加 MCP 服务配置:
{
"mcpServers": {
"storyscan-mcp": {
"command": "uv",
"args": [
"--directory",
"~/path/to/story-mcp-hub/storyscan-mcp",
"run",
"server.py"
]
},
"story-sdk-mcp": {
"command": "uv",
"args": [
"--directory",
"~/path/to/story-mcp-hub/story-sdk-mcp",
"run",
"server.py"
]
}
}
}
- 保存文件并重启 Claude Desktop,使更改生效。
示例查询:use storyscan to check balance of 0x95A13F457C76d10A40D7e8497eD4F40c53F4d04b
开发
要向 hub 添加新的 MCP 服务:
- 为服务创建一个新目录
- 在服务中实现 MCP 协议
- 将所需依赖项添加到根目录的
pyproject.toml - 更新此 README,添加有关服务的信息
测试
运行测试
项目包含一个测试运行脚本(run_tests.py),用于处理环境设置和测试执行。运行测试的步骤如下:
- 安装测试依赖项:
uv sync --extra test
- 运行所有测试:
uv run python run_tests.py
- 运行指定类别的测试:
# Run unit tests only
uv run python run_tests.py -t tests/unit/
# Run integration tests only
uv run python run_tests.py -t tests/integration/
# Run with verbose output
uv run python run_tests.py -v
- 运行单个测试文件:
uv run python run_tests.py -t tests/unit/story_sdk_mcp/test_story_service.py
- 查看可用选项的帮助信息:
uv run python run_tests.py --help
测试环境设置
测试使用包含模拟凭据的 .env.test 文件。测试运行器会自动加载此文件。
设置测试环境:
- 复制示例文件,创建自己的
.env.test:
cp .env.test.example .env.test
- 编辑
.env.test文件,填入你的测试凭据:
# For example, update the private key for blockchain interactions
nano .env.test # or use your preferred text editor
有关测试的详细信息,请参阅测试指南。
故障排除
如果遇到问题:
- 确认每个服务的环境变量均已正确设置
- 检查与外部 API(StoryScan、IPFS 等)的网络连接
- 确认使用的是正确的 Python 版本(3.12+)
- 检查是否已使用
uv sync安装所有依赖项
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。