projectstate
Integrates with Coinbase's x402 payment facilitator on Base mainnet to charge per-call USDC payments: tool calls return an x402 v2 PaymentRequired challenge (scheme exact, USDC on Base, amount and pay-to address), the client signs and retries the call, and settlement receipts plus reusable credit tokens are returned. Coinbase CDP keys are used to switch the payment rail to Base mainnet for live operation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@projectstaterecall recent decisions and open tasks for my-app"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
projectstate
Persistent project memory for AI agents, paid per call in USDC over x402. No account, no API key.
https://projectstate.online/mcp — an MCP server (Streamable HTTP) that remembers, per project, what was decided, what was tried and failed, and what is still open, and hands an agent back the three facts it needs instead of the whole history.
Why
Every agent already has "memory". What it does not have is project state that survives across tools and sessions: Claude Code, Cursor, a CI agent and a script all working on the same repo, sharing one ranked, compact record of decisions and dead ends. That is what this is. Retrieval is the point: recall returns at most a few lines inside a character budget, ranked so superseded decisions sink and active ones float.
Related MCP server: Mnemexa MCP
Tools
Tool | Does | Price |
| open/create a project; returns a brief: status, open tasks, latest decisions, failed attempts | $0.002 |
| read or set the one-line status (hand-off note between sessions) | $0.002 |
| store a | $0.002 |
| ranked keyword search, trimmed to a budget | $0.005 |
| close tasks, mark attempts, supersede decisions | $0.002 |
Failed calls are free. Identical retries (or any call with the same idempotency_key) are never billed twice. Prices are published per tool in tools/list under _meta.priceUsd.
How paying works
Call a tool. Without credit the result is
isError: truewith an x402 v2PaymentRequiredinstructuredContent(schemeexact, USDC on Base, the amount, the pay-to address).Sign the USDC payment and retry the same call with the payload in
_meta["x402/payment"].The result carries the settlement receipt in
_meta["x402/payment-response"]and a credit token in_meta["projectstate/x402-credit"].One payment buys credit ($0.10 on a session-based connection, $0.01 minimum per call without one). Later calls draw from it automatically on a session, or by sending the credit token as
Authorization: Bearer xc_…. Unused credit stays on your wallet address.
Works with any x402-capable client: x402-mcp (withPayment()) for the Vercel AI SDK, the x402 Python package, or the 30-line handshake in scripts/x402_agent_demo.py.
from eth_account import Account
from mcp import Client
from x402 import x402Client
from x402.mechanisms.evm.exact import register_exact_evm_client
from x402.mechanisms.evm.signers import EthAccountSigner
from x402.schemas import PaymentRequired
x = x402Client(); register_exact_evm_client(x, EthAccountSigner(Account.from_key(KEY)))
async with Client("https://projectstate.online/mcp") as mcp:
r = await mcp.call_tool("project_open", {"project": "my-app"}) # -> PaymentRequired
pay = (await x.create_payment_payload(PaymentRequired(**r.structured_content))).model_dump(by_alias=True, exclude_none=True)
r = await mcp.call_tool("project_open", {"project": "my-app"}, meta={"x402/payment": pay})
token = r.meta["projectstate/x402-credit"] # reuse on later callsWhat is under the hood
Python 3.12, the official MCP Python SDK (v2), SQLite + FTS5 (bm25, no vectors), the official x402 package against the Coinbase facilitator on Base mainnet. One process, one SQLite file, an admin dashboard with per-tool latency, error messages, a full audit ledger and a retrieval-quality meter (zero-hit and re-query rates) that says when keyword search stops being enough.
Docs: https://projectstate.online/docs · Registry: online.projectstate/projectstate · License: MIT
Run your own
deploy/install.sh sets up systemd, nginx, fail2ban, hourly SQLite backups and unattended upgrades on a small Ubuntu VPS; deploy/env.example lists every setting; deploy/x402_live_setup.sh switches the x402 rail to Base mainnet with Coinbase CDP keys. pytest tests/ runs 33 tests including a mock x402 facilitator that verifies real EIP-712 signatures.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent agent memory paid per call via x402 USDC. Your wallet is your private memory namespace.
Encrypted, pay-per-use persistent memory storage for AI agents, gated by x402 payments on Base.
Private, permanent encrypted storage for AI agents. Paid per call in USDC via x402.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides a persistent, vendor-neutral memory layer that allows AI tools and agents to share context and knowledge across different platforms while maintaining local data ownership. It enables users to store, recall, and manage structured memories through hybrid semantic search and automated context assembly.9Apache 2.0

Mnemexa MCPofficial
AlicenseAqualityDmaintenanceProvides persistent, self-optimizing memory for AI agents, enabling them to remember preferences and context across sessions and share knowledge across multiple agents.49ISC- AlicenseNot gradedqualityBmaintenanceGives AI assistants persistent, queryable project memory for decisions, patterns, and rules, reducing the need to re-explain context in every prompt.11Apache 2.0
- AlicenseAqualityDmaintenanceMCP server for persistent memory, enabling AI agents to store and semantically retrieve notes, decisions, and context across conversations using API keys or x402 payments.1021MIT