-
Notifications
You must be signed in to change notification settings - Fork 2.3k
MCP server for Substrate-based chains #2535
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
I have read and hereby sign the Contributor License Agreement. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @jakehemmerle nice to talk to you again. I see you marked 0% for DOT payment, however at least 50% DOT (vested linearly over two years) is mandatory now for the grants program. Would you be willing to accept half the payment in DOT and if so could you update this?
Hey Kegan! I hope all is well in your world. Just updated it. Another thing, I now realize that grants for individual contributors might aim for a max $10k grant instead of max $30k. Would it be better to decompose this into a smaller set of milestones and aim for the $10k instead? |
Thanks @jakehemmerle much appreciated. I have marked the application as ready for review and will ping the rest of the committee for comment. To answer your question, I would leave as is for now and you can always change it down the line if it isn't accepted. Thanks! |
A small suggestion from me would be to not call it |
Is there a reason, semantically, that mcp-polkadot is more descriptive? This would work for any Substrate-based runtime (eg. Polkadot, Astar, Entropy, etc). |
Developer tooling & resources will benefit from consolidation around the Polkadot brand, given the branding overhaul initiated across the ecosystem in the past months/year. These two non-exhaustive links might provide a bit more context:
Ideally you want to reduce possible confusion and reduce cognitive load on people that don't have the full history in mind. In short, it's all Polkadot. |
@KarimJedda Right on, thanks for the context. Happy to change to |
@keeganquigley can you let me know what is missing from the review? If payment details are the bottleneck, can you let me know what email to send them to? |
Thanks @jakehemmerle yes can you please send them to [email protected] Much of the team is ooo this week, sorry for the delay. |
Good morning @keeganquigley , anything I help with on my end for this? |
Sorry for the delay here, just a couple more clarifying technical questions:
Thanks for any further insights you can provide. |
For simply serving on-chain state (as Resources), the MCP server can wrap around Polkadot.js and get all queryable pallet data from its
Using or looking to PolkadotJS and subxt for techniques is the obvious solution. It's SCALE-encoded schema. I wrote Substrate runtimes for Entropy for almost 2 years so I feel like I have a pretty good feel of what issues I might run into.
Standard error handling seems appropriate, where the server would just format PolkadotJS errors as text and return to the client.
The MCP server is relatively stateless, so restarting the daemon or having it reload on runtime update Events would be easy. The server would be able to be started with a single argument (the URL to a Substrate RPC endpoint), which fetches the metadata runtime at startup and then generates the resources.
Networks themselves wouldn't really utilize MCP, it would be a service that (non-validating) node operators host (the same way projects host associated services like a frontend for their web3 apps). One example for EVM-compatible endpoints is here: https://github.com/Phillip-Kemper/ethereum-rpc-mpc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @jakehemmerle, thanks for the application. I am happy to support it. The only question I have is whether you actually plan on working on the items listed in the Future Plans
section, or what the deciding factor would be.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delay @jakehemmerle and thanks for your thorough answers. I'm happy to approve as well.
While waiting for further reviews could you please also complete KYB verification for the legal entity, or KYC in the case that it is just yourself? This is now required for all applicants. Thanks! |
Thanks for the support @semuelle @keeganquigley
Biggest on my end would probably be grant support and feature prioritization. Obviously, the hope with grants is that the output is integrated into the ecosystem in some capacity. It'd be important to prioritize the Future Plan items, so we would probably want to talk with teams that are already using AI heavily in their product, documentation, or engineering workflows (maybe client fuzzing in CI?) sooner rather than later to gauge integration and get feedback. Any teams you can think of to connect with first? A first use case for this MVP version could be an AI-powered chat assistant that is hosted on indexer sites. Imagine Etherscan-equivalent had a click-window in the bottom right and I could say "What contract did XYZ address most recently interact with". That would also give us info on what users are intending to do, to help feature prioritization. Maybe getting in touch with teams providing index services or node/service providers could be a great start on that front. |
Project Abstract
mcp-polkadot
aims to expose any Substrate-based chain's on-chain state to AI agents via the Model-Context Protocol (MCP). More examples of MCP can be found hereGrant level
Application Checklist
project_name.md
).@_______:matrix.org
(change the homeserver if you use a different one)