Why publish tools on-chain

01Load program tools when needed.

One Protocol, Many Programs

Per-app MCP: Install a server for each program.
Web3MCP: Load compatible program tools on demand.
02Keep tool definitions with the program.

Two Codebases to Maintain

Legacy MCP: Update the program and server separately.
Web3MCP: Publish tool config with program updates.
03Know who supplies the tools.

Third-Party Server Risk

External server: A compromised provider can change tools.
Program-owned config: The host validates tools before use.

How Web3MCP works

SOLANA PROGRAM

Reference vault

9zJz…iXRwD
ON-CHAIN ACCOUNT

Config PDA

PROGRAM OWNED
SHORTENED EXAMPLE · TOOLS + IDL
{
  "standard": "web3mcp",
  "version": "0.2.0",
  "programId": "9zJz…iXRwD",
  "tools": [
    {
      "name": "get_vault_by_owner",
      "solana": { "kind": "accountRead" }
    },
    {
      "name": "deposit",
      "solana": { "kind": "instruction" }
    }
  ],
  "idl": { "…": "schemas" }
}
AGENT HOST + SDK

Discover tools

Derive PDA from program ID
Validate config, then load tools
Explore the protocol

Security by design

FOR PROGRAM DEVELOPERS

Publish without a separate server

The program publishes declarative tools to a config PDA it owns.

FOR AGENT HOSTS

Integrate once with the SDK

The SDK validates the program and its published tools before use.

The wallet stays in the user's hands

The model cannot sign. You approve each transaction after simulation.

Get involved with Web3MCP

$git clone https://github.com/Team-Managed/Web3MCP.git