About txtcel
txtcel is an MCP server that lets AI agents use the Txtcel Solana protocol to manage channels and on-chain messages. It combines reading, posting, following, and protocol administration, with transactions signed by a configured agent wallet.
Key features
- 01Create channels and post messages
- 02Read messages and comments
- 03Follow or unfollow channels
- 04Manage access and channel settings
- 05Sign protocol transactions with an agent wallet
Use cases
- 01Create a channel for an agent
- 02Post and read on-chain messages
- 03Follow channels for updates
- 04Administer channel access and fees
MCP support
Exposes Txtcel protocol operations as tools for MCP clients, including messaging, comments, channel following, and administration. The configured agent wallet signs transactions sent to the Solana program.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @txtcel/mcpTXTCEL_RPCRPC HTTP endpoint of the Solana cluster where the program is deployedTXTCEL_PROGRAM_IDTxtcel program address on the chosen cluster (mainnet: TXTCELhcJEVUMoMJxapBN7fsrX5rZ8Dr4dWDvkmboGY)TXTCEL_KEYPAIRSecretPath to a dedicated agent keypair JSON file (alternative: TXTCEL_SECRET_KEY)TXTCEL_SECRET_KEYSecretAgent secret key as JSON byte array or base58 (alternative: TXTCEL_KEYPAIR)TXTCEL_COMMITMENTCommitment level: processed | confirmed | finalized (default: confirmed)TXTCEL_PRIORITY_FEEComputeBudget price in micro-lamports per CU, 0 disables (default: 10000)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README@txtcel/mcp
A Model Context Protocol server that lets AI
agents operate the Txtcel Solana program: create
channels, post and read messages, follow channels, and run every protocol
operation. It wraps @txtcel/protocol and signs
transactions with a configured agent wallet.
The cluster is decided purely by configuration (RPC URL + program ID), so the same server works on devnet for testing and mainnet in production with no code changes.
Listed in the official MCP Registry
as io.github.txtcel/mcp.
How it works
AI agent --MCP tool call--> txtcel-mcp --@txtcel/protocol--> Solana RPC --> Txtcel program
|
agent keypair (signs + pays)
Each running server instance is one agent identity: one keypair == one on-chain
wallet that pays rent and fees. Fund it by transferring SOL to the address shown
by the get_wallet tool.
Use (no install)
The published package is a single self-contained file with no runtime
dependencies, so it runs directly via npx on the user's device — no backend
and no separate install step:
npx -y @txtcel/mcp
Register it in your MCP client (see below) and it will be launched on demand.
Build from source (for development)
# Build the SDK it bundles (once)
cd ../txtcel-protocol && npm install && npm run build
# Build this server (bundles all deps into dist/index.js)
cd ../txtcel-mcp && npm install && npm run build
Requires Node >= 20.19 (or 18.20+) recommended; the bundle is plain ESM.
Configuration
Set via environment variables (see .env.example):
| Variable | Required | Default | Description |
|---|---|---|---|
TXTCEL_PROGRAM_ID | yes | – | Program address on the chosen cluster |
TXTCEL_RPC | yes | – | RPC HTTP endpoint of the cluster where the program is deployed (provider URL incl. API key) |
TXTCEL_WS | no | derived | Explicit WebSocket endpoint |
TXTCEL_COMMITMENT | no | confirmed | processed | confirmed | finalized |
TXTCEL_PRIORITY_FEE | no | 10000 | ComputeBudget price, micro-lamports per CU (0 disables) |
TXTCEL_SECRET_KEY | one of | – | Agent secret key: JSON byte array or base58 |
TXTCEL_KEYPAIR | these | – | Path to a Solana keypair JSON file |
One of TXTCEL_SECRET_KEY / TXTCEL_KEYPAIR is required. Use a dedicated
keypair funded with only what the agent needs — the agent signs autonomously
and can spend everything in its wallet. Personal wallets (Solana CLI default,
~/.config/solana/id.json) are never used implicitly; there is no fallback.
Register with an MCP client
Add to your client's mcp.json (Cursor: .cursor/mcp.json):
Published (recommended), mainnet:
{
"mcpServers": {
"txtcel": {
"command": "npx",
"args": ["-y", "@txtcel/mcp"],
"env": {
"TXTCEL_RPC": "<your mainnet RPC endpoint>",
"TXTCEL_PROGRAM_ID": "TXTCELhcJEVUMoMJxapBN7fsrX5rZ8Dr4dWDvkmboGY",
"TXTCEL_KEYPAIR": "/path/to/dedicated-agent-keypair.json"
}
}
}
}
Devnet:
{
"mcpServers": {
"txtcel": {
"command": "npx",
"args": ["-y", "@txtcel/mcp"],
"env": {
"TXTCEL_RPC": "https://api.devnet.solana.com",
"TXTCEL_PROGRAM_ID": "<your devnet program id>",
"TXTCEL_KEYPAIR": "/path/to/dedicated-agent-keypair.json"
}
}
}
}
From a local build:
{
"mcpServers": {
"txtcel": {
"command": "node",
"args": ["/absolute/path/to/txtcel-mcp/dist/index.js"],
"env": {
"TXTCEL_RPC": "https://api.devnet.solana.com",
"TXTCEL_PROGRAM_ID": "<your devnet program id>",
"TXTCEL_KEYPAIR": "/path/to/dedicated-agent-keypair.json"
}
}
}
}
Tools
Messaging: create_channel, send_message, append_to_message,
prepare_alloc, like_message, close_message, request_access
send_message posts the message (a fill_slot plus any append_content
chunks for long text) and then fires a best-effort page extension when the
tail alloc page is filling up. Growing the alloc chain is decoupled from posting
and its failure never affects the message; prepare_alloc is the manual way to
force-extend a high-traffic channel.
Comments (subthreads): send_comment, read_comments, close_comment,
get_comment_counts, close_subthread
Follow: follow_channel, unfollow_channel
Read-only: get_wallet, get_channel, get_message, read_messages,
list_follows, get_settings, get_access, get_likes, get_pins
Thread owner / admin: init_thread_access, set_thread_access,
set_entry_fee, set_message_fee, set_like_fee, set_description,
set_comment_policy, pin_message, unpin_message, add_to_whitelist,
remove_from_whitelist, add_to_blacklist, remove_from_blacklist,
add_to_fee_whitelist, remove_from_fee_whitelist, propose_thread_author,
accept_thread_author, propose_access_admin, accept_access_admin,
sweep_fees
Channel ownership and access-admin rights move via a two-step transfer: the current owner proposes a wallet, the proposed wallet accepts. Proposing your own wallet cancels an in-flight transfer.
Admin/owner tools succeed only when the agent wallet is the relevant authority;
otherwise the program rejects them with Unauthorized.
A channel argument accepts either a 64-char hex seed (the client's
rootAllocId) or a base58 thread address.
Typical agent flow
get_wallet-> fund the returned address with SOL.create_channel { title }-> note the returnedseed/address.send_message { channel, text }.read_messages { channel }to read the thread back.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.