关于 projectstate
projectstate 是面向 AI Agent 的项目级持久记忆 MCP 服务,记录决策、失败尝试和待办事项。它通过排序检索和计划检查,为跨会话工作的 Agent 提供精简项目状态,并按调用使用 x402/USDC 付费。
主要功能
- 01记录决策、尝试、任务和备注
- 02按相关性检索并限制字符数
- 03计划检查提示历史失败与约束
- 04更新状态并替代旧决策
- 05通过 x402/USDC 按调用付费
适用场景
- 01在开始任务前检查相关失败记录
- 02跨会话交接项目状态和未完成任务
- 03让多个 Agent 共享项目决策记录
MCP 相关
它通过 Streamable HTTP 提供 MCP 服务,向客户端开放项目创建、状态管理、记录、检索和计划检查工具。调用通过 x402 使用 USDC 结算。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://projectstate.online/mcpclaude mcp add --transport http online-projectstate-projectstate https://projectstate.online/mcp{"mcpServers":{"online-projectstate-projectstate":{"type":"http","url":"https://projectstate.online/mcp"}}}在 Cursor 中打开{"servers":{"online-projectstate-projectstate":{"type":"http","url":"https://projectstate.online/mcp"}}}在 VS Code 中打开{"mcpServers":{"online-projectstate-projectstate":{"type":"http","url":"https://projectstate.online/mcp"}}}{"mcpServers":{"online-projectstate-projectstate":{"serverUrl":"https://projectstate.online/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
6| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | any | 否 | |
| project | any | 否 | |
| description | any | 否 |
详细介绍
projectstate
为 AI Agent 提供持久化项目记忆,通过 x402 以 USDC 按次付费。无需账号或 API 密钥。
https://projectstate.online/mcp — 一个 MCP 服务(Streamable HTTP),按项目记住已作出的决定、尝试过但失败的事项,以及仍待解决的问题,并向 Agent 返回所需的三条事实,而不是完整历史记录。
为什么
每个 Agent 都已经有“记忆”。它们缺少的是能跨工具和会话留存的项目状态:Claude Code、Cursor、CI Agent 和脚本都在同一个仓库上工作,共享一份按重要性排序、简洁紧凑的决策与失败尝试记录。这正是本服务的用途。检索才是重点:recall 返回不超过几行内容,并控制在字符预算内;结果按优先级排序,已被取代的决定会靠后,仍有效的决定会靠前。
工具
| 工具 | 功能 | 价格 |
|---|---|---|
project_open(project, name?, description?) | 打开或创建项目;返回一份简报:状态、待办任务、最新决定和失败尝试 | $0.002 |
project_status(project, set_status?) | 读取或设置单行状态(用于在会话之间交接的备注) | $0.002 |
remember(project, kind, title, body?, tags?, files?, status?, supersedes?, idempotency_key?) | 存储一条 decision、attempt、task 或 note | $0.002 |
recall(project, query?, kind?, status?, tags?, files?, limit=5, max_chars=1500) | 按关键词排序搜索,并裁剪到预算范围内 | $0.005 |
plan_check(project, intent, files?, limit=3, max_chars=1200) | 说明你准备做什么;获取会影响计划的失败尝试、约束性决定和重叠任务 | $0.010 |
update(project, id, status?, title?, body?, append?, tags?, files?, delete?) | 关闭任务、标记尝试、取代决定 | $0.002 |
失败的调用免费。相同的重试(或任何具有相同 idempotency_key 的调用)绝不会重复收费。每种工具的价格均在 tools/list 的 _meta.priceUsd 中公布。
plan_check
开始非简单任务前应调用的工具:
plan_check(project="my-app", intent="switch the session cache to Redis", files=["src/cache.py"])
Plan check for 'my-app': 'switch the session cache to Redis'
Prior failures (1):
#8 attempt/failed (2026-09-12): Tried Redis for the session cache — connection pool exhausted under load
Active decisions that constrain this (1):
#9 decision/active (2026-09-12): Cache with SQLite instead of Redis — one less service to run
Open tasks that overlap (1):
#10 task/open (2026-09-12): Benchmark the cache options
一次调用即可进行三次定向搜索,只返回会影响计划的内容。如果没有相关记录,结果会回答 “记录中没有与此计划匹配的内容”,这样 Agent 无需二次查询即可继续。
如何付款
- 调用工具。如果没有余额,结果会返回
isError: true,并在structuredContent中提供 x402 v2PaymentRequired(方案exact、Base 上的 USDC、金额和收款地址)。 - 签署 USDC 付款,然后在
_meta["x402/payment"]中携带付款负载,重试同一调用。 - 结果会在
_meta["x402/payment-response"]中附带结算收据,并在_meta["projectstate/x402-credit"]中附带余额令牌。 - 一笔付款即可购买余额(基于会话的连接为 $0.10,不使用会话时每次调用最低 $0.01)。后续调用会在会话中自动扣除余额,也可以通过
Authorization: Bearer xc_…发送余额令牌。未用完的余额会保留在你的钱包地址上。
适用于任何支持 x402 的客户端:供 Vercel AI SDK 使用的 x402-mcp(withPayment())、x402 Python 包,或 scripts/x402_agent_demo.py 中仅 30 行的握手代码。
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 calls
底层实现
Python 3.12、官方 MCP Python SDK(v2)、SQLite + FTS5(bm25,不使用向量)、面向 Base 主网 Coinbase facilitator 的官方 x402 包。单进程、单个 SQLite 文件,以及一个管理仪表板,提供各工具的延迟、错误消息、完整审计账本和检索质量指标(零结果命中率与重新查询率),用于判断关键词搜索何时不再够用。
文档:https://projectstate.online/docs · 注册表:online.projectstate/projectstate · 许可证:MIT
自行运行
deploy/install.sh 会在小型 Ubuntu VPS 上配置 systemd、nginx、fail2ban、每小时 SQLite 备份和无人值守升级;deploy/env.example 列出了所有设置;deploy/x402_live_setup.sh 会使用 Coinbase CDP 密钥将 x402 支付通道切换到 Base 主网。pytest tests/ 会运行 33 项测试,其中包括一个用于验证真实 EIP-712 签名的模拟 x402 结算器。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。