Provides tools to interact with IPFS storage, including uploading images and creating metadata
Story MCP Hub
This repository serves as a central hub for Story Protocol's Model Context Protocol (MCP) servers. It provides a unified environment for running and managing various MCP services that enable AI agents to interact with Story Protocol's ecosystem.
Project Structure
MCP Servers
StoryScan MCP Server
Provides tools for querying blockchain data, including address balances, transactions, and blockchain statistics.
Tools:
get_transactions
: Get recent transactions for an addressget_stats
: Get current blockchain statisticsget_address_overview
: Get a comprehensive overview of an address including balance, token info, and blockchain activityget_token_holdings
: Get all ERC-20 token holdings for an address, including detailed token information and balancesget_nft_holdings
: Get all NFT holdings for an address, including collection information and individual token metadatainterpret_transaction
: Get a human-readable interpretation of a blockchain transaction
Story SDK MCP Server
Provides tools for interacting with Story Protocol's Python SDK.
Tools:
IPFS & Metadata Tools (requires PINATA_JWT):
upload_image_to_ipfs
: Upload an image to IPFS using Pinata API and return the URIcreate_ip_metadata
: Create and upload both NFT and IP metadata to IPFS
License Management Tools:
get_license_terms
: Retrieve license terms for a specific IDget_license_minting_fee
: Get the minting fee for a specific license terms IDget_license_revenue_share
: Get the commercial revenue share percentage for a specific license terms IDmint_license_tokens
: Mint license tokens for a given IP and license terms (auto-approves WIP tokens)predict_minting_license_fee
: Pre-compute the minting license fee for given IP, license terms and amount
IP Asset Management Tools:
register
: Register an NFT as IP, creating a corresponding IP recordattach_license_terms
: Attach license terms to an IP assetmint_and_register_ip_with_terms
: Mint and register an IP with terms
NFT Collection Tools:
create_spg_nft_collection
: Create a new SPG NFT collection that can be used for minting and registering IP assetsget_spg_nft_minting_token
: Get the minting fee required by an SPG NFT contract
Revenue & Royalty Tools:
pay_royalty_on_behalf
: Pay royalties to a receiver IP asset on behalf of a payer IP asset (auto-approves tokens)claim_all_revenue
: Claim all revenue from child IPs of an ancestor IP with optional auto-transfer
Dispute Tools:
raise_dispute
: Raise a dispute against an IP asset (auto-approves WIP bond tokens)
Token Management Tools:
deposit_wip
: Wrap IP to WIP and deposit to wallettransfer_wip
: Transfer WIP tokens to a recipientget_erc20_token_balance
: Get the balance of any ERC20 token for an accountmint_test_erc20_tokens
: Mint test ERC20 tokens if the contract has a public mint/faucet function
Setup
Prerequisites
- Python 3.12+
- UV package manager
Installation
- Install UV package manager and install env:
- Clone this repository:
- Install dependencies using UV:
- Set up environment variables for each server:
For StoryScan MCP:
For Story SDK MCP:
Running the Servers
StoryScan MCP Server Inspector
Story SDK MCP Server
Using with MCP Clients
Follow the instructions below to connect the MCP servers to various MCP-compatible clients.
Cursor
Cursor implements an MCP client that supports an arbitrary number of MCP servers with both stdio
and sse
transports.
Adding MCP Servers in Cursor
- Go to
Cursor Settings
>Features
>MCP
- Click on the
+ Add New MCP Server
button - Fill out the form:
- Select the transport under
Type
- Enter a nickname for the server in the
Name
field - Enter either the command to run or the URL of the server, depending on the transport
- We'll use the
uv
command to run the server, so make sure to include the--directory
flag with the path to the server (Example:uv --directory ~/path/to/story-mcp-hub/storyscan-mcp run server.py
)
- Select the transport under
Project-Specific MCP Configuration
You can configure project-specific MCP servers using .cursor/mcp.json
. The file follows this format:
Using MCP Tools in Cursor
The Composer Agent will automatically use any MCP tools that are listed under Available Tools
on the MCP settings page if it determines them to be relevant. To prompt tool usage intentionally, simply tell the agent to use the tool, referring to it either by name or by description.
When the Agent wants to use an MCP tool, it will display a message asking for your approval.
Claude Desktop
Claude Desktop can be configured to use MCP servers by editing its configuration file.
Adding MCP Servers in Claude Desktop
- Open the Claude Desktop configuration file:
- Add the MCP server configuration:
- Save the file and restart Claude Desktop for the changes to take effect.
Example query: use storyscan to check balance of 0x95A13F457C76d10A40D7e8497eD4F40c53F4d04b
Development
To add a new MCP server to the hub:
- Create a new directory for your server
- Implement the MCP protocol in your server
- Add any necessary dependencies to the root
pyproject.toml
- Update this README with information about your server
Testing
Running Tests
The project includes a test runner script (run_tests.py
) that handles environment setup and test execution. To run tests:
- Install test dependencies:
- Run all tests:
- Run specific test categories:
- Run individual test files:
- Get help on available options:
Environment Setup for Testing
The tests use a .env.test
file with mock credentials for testing. This file is automatically loaded by the test runner.
To set up your test environment:
- Copy the example file to create your own
.env.test
:
- Edit the
.env.test
file to include your test credentials:
For more detailed information about testing, see the testing guide.
Troubleshooting
If you encounter issues:
- Verify that environment variables are set correctly for each server
- Check network connectivity to external APIs (StoryScan, IPFS, etc.)
- Ensure you're using the correct Python version (3.12+)
- Check that all dependencies are installed with
uv sync
License
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Provides tools for managing IP assets and licenses, interacting with the Story Python SDK, and handling operations like minting tokens, registering IP, and uploading metadata to IPFS.
- Project Structure
- MCP Servers
- Setup
- Running the Servers
- Using with MCP Clients
- Development
- Troubleshooting
- License
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that provides tools for Xcode-related operations, making it easier to work with iOS project management, building, testing, archiving, and deploying apps to both simulators and physical devices.Last updated -9496MIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that integrates with Storybook to help AI tools query UI components and retrieve usage examples from static Storybook files.Last updated -25117MIT License
- AsecurityAlicenseAqualityProvides tools for creating, managing, and generating content for DeepWriter projects through a standardized Model Context Protocol interface.Last updated -66Apache 2.0
- AsecurityAlicenseAqualityThe Storyblok MCP server enables your AI assistants to directly access and manage your Storyblok spaces, stories, components, assets, workflows, and more.Last updated -25PythonMIT License