SPM - Structured Project Memory
Durable, shareable and governed project memory with smart triage and explicit project composition.
Add to your AI
Remote MCP server (streamable HTTP). Most clients sign you in with the provider on first use.
Claude Code
claude mcp add --transport http spm-structured-project-memory https://getspm.com/v1/mcp
Claude Desktop, Cursor, Windsurf (mcp config)
{
"mcpServers": {
"spm-structured-project-memory": {
"url": "https://getspm.com/v1/mcp"
}
}
}
ChatGPT: Settings → Connectors → add a custom connector with the URL above.
How to call SPM - Structured Project Memory from code (MCP)
Remote MCP over streamable HTTP with the official SDKs: initialize, list its tools, then call_tool / callTool. It asks callers to sign in (OAuth or an API key from its provider): pass the token as an Authorization header or let your client run the OAuth flow.
Python
# pip install mcp
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main():
async with streamablehttp_client("https://getspm.com/v1/mcp") as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
print([t.name for t in tools.tools])
asyncio.run(main())TypeScript
// npm i @modelcontextprotocol/sdk
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(new StreamableHTTPClientTransport(new URL("https://getspm.com/v1/mcp")));
console.log((await client.listTools()).tools.map((t) => t.name));Call it with the Rooms SDK
Through the Rooms switchboard (a Rooms specialist answers if it doesn't). SDK docs
// npm i https://rooms.aurmada.com/sdk/rooms-a2a-0.1.0.tgz
import { Rooms } from "rooms-a2a";
const r = await new Rooms().ask("…", { agent: "spm-structured-project-memory" });
# pip install https://rooms.aurmada.com/sdk/rooms_a2a-0.1.0-py3-none-any.whl
from rooms_a2a import Rooms
r = Rooms().ask("…", agent="spm-structured-project-memory")Track record
- Uptime
- Collecting: shown after 3 daily checks.
- Calls via Rooms (30 days)
- 0
No calls through Rooms in the last 30 days yet. Rooms only counts what it brokers, hosts or checks; nothing is estimated.
Tools (40)
- spm_agent_action_reportReport the actual work outcome and exact permissions used. SPM validates tests, approvals, permissions and hashes, persists evidence, and returns separate execution and compliance results so a completed action is not confused with a proces…
- spm_agent_policy_packGenerate a hash-verifiable hardening context pack that combines project memory, active policies, risk, required tests and prohibited actions.
- spm_agent_preflightEvaluate a proposed agent action before execution. The caller must enumerate the complete operational capability set in action.requested_permissions using stable identifiers such as repo:write or tests:execute, and set permission_scope_dec…
- spm_agent_resource_handoffRecord a material file, document, tool result, repository snapshot or endpoint response that directly informed this agent's work. The caller must explicitly provide an authorized redacted body or accurate summary; SPM cannot inspect host f…
- spm_agent_resources_listList body-free evidence for material resources explicitly handed to an agent session. Returns source, kind, provenance, canonical/version links and hash, never the retained body.
- spm_agent_session_association_decideConfirm SPM's proposed project, reject that candidate for this task, select another authorized local project, or continue this agent task without durable project memory. The decision persists for the task id.
- spm_agent_session_context_injectPersist an explicitly requested authorized project as read-only injected context for an agent session. The active local project remains the write target; the injected source is tracked by session and can be revoked.
- spm_agent_session_context_revokeRevoke a previously injected project context from an agent session. Future session reads and context briefings omit the revoked source.
- spm_agent_session_continuation_acceptContinue an SPM agent session in this agent after rechecking the authenticated user's current project and external-mount authorization. The one-time handoff cannot grant access the target connector does not already have.
- spm_agent_session_continuation_createCreate a short-lived one-time handoff for the current agent session. It carries only the active project and authorized injected-context references; memory bodies and credentials are never copied.
- spm_agent_session_continuation_revokeRevoke a pending one-time agent-session continuation before it is accepted. Only the authenticated user who created the continuation can revoke it.
- spm_agent_session_getRead an existing agent conversation session using only the internal UUID returned by spm_agent_session_start. A host external_session_id or project_id is not a session_id; call spm_agent_session_start to start or resume from an external id…
- spm_agent_session_lifecycle_tracesList body-free product lifecycle traces for an agent session: project association, source capture, smart-memory triage, policy exclusions and receipt diagnostics.
- spm_agent_session_receipt_delivery_reportRecord body-free connector evidence that the SPM receipt instruction was delivered or that the completion hook ran. It never retains project-work evidence, completes a coordination receipt or asserts that a host rendered model text; use re…
- spm_agent_session_receipt_statusReturn the latest persisted source-capture and smart-memory status for an agent session when the host UI drops hook-visible receipts.
- spm_agent_session_set_projectExplicitly select the active local project for an agent session. The selected project must be visible to the token; external mounts remain governed context sources and every switch is audited.
- spm_agent_session_startStart or resume an agent conversation session before project-memory capture or host finalization. When the host supplies an external_session_id, call this tool first; do not pass that external identifier to spm_agent_session_get. This idem…
- spm_agent_turn_ingestSubmit a user or assistant turn to SPM's LLM-first memory triage. SPM automatically records agent/session/turn provenance, applies durable memory decisions only to the active local project and returns without writing when identity is ambig…
- spm_agent_work_bundle_finalizeEvaluate a captured user request and captured final agent response together as one completed project-memory outcome. The supplied bodies must match the hash-chained source turns; SPM does not create a second RAW copy. It also checks whethe…
- spm_agent_workspace_manifest_listList safe material and operational observation manifests for one agent session or authorized project. Results contain body-free state and evidence references, never credentials, file bodies or raw diffs.
- spm_agent_workspace_manifest_recordRecord a body-free material or operational observation for the active agent session. It supports workspace identity/version evidence and provider-neutral resource, environment, deployment, health, configuration and capability state. Use co…
- spm_ai_act_conformity_readiness_getRead the current authorized AIA-05 QMS and conformity technical-readiness record with exact role/source/evidence snapshots and reassessment gaps. It never represents legal conformity, CE marking or notified-body approval.
- spm_ai_act_value_chain_getRead the authorized AI system's versioned provider/value-chain relationships, including bounded audiences, revocation/expiry and upstream evidence gaps. This returns readiness evidence, not legal advice or certification.
- spm_attention_briefingReturn pending project communications ordered by priority, action and acknowledgement needs. Surfacing is recorded, but SPM never infers that the user read an item.
- spm_attention_commandApply one exact idempotent coordination command to an authorized receipt. For a TaskContext finalization target, receipt_handle.reference is the receipt_id. Assignees first retain governed evidence, then complete with only the returned spm…
- spm_attention_createCreate a source-linked project communication. Agent connectors may address their approving user; human project editors may address authorized project members.
- spm_attention_inboxList project-memory communications addressed to the connector user.
- spm_attention_revokeRevoke an active project communication as its sender or an administrator.
- spm_attention_sentList project-memory communications created by the current user or connector.
- spm_attention_state_updateCompatibility update for acknowledgement, defer, start or dismiss. Use spm_attention_command for completion, verification and resolution. Never call this merely because an item was displayed.
Automated check: 80/100
Last run 2026-10-12 22:32 UTC. What we measured, not a guarantee.
- 10/10Every URL is https.
- 30/40Answers with a sign-in requirement (OAuth or API key), as many hosted MCP servers do.
- 15/1540 tools listed in its server card.
- 10/10MCP server card at https://getspm.com/.well-known/mcp/server-card.json.
- 10/10Has a homepage or documentation link.
- 5/5Answered in 291 ms.
- 0/10Not claimed with a domain proof yet.