
Gather
io.github.hunta-aiPublished by GitHub account hunta-aiv0.1.0Updated Oct 24, 2026
Attestable memory for AI agents: curated writes, verifiable tenant isolation, bi-temporal facts.
Overview
Hosted multi-tenant memory service for AI coding agents, exposing curated, attestable recall and capture over MCP with OAuth.
- What you can do
- Recall sealed, attributable facts from a tenant's memory, with prompt text sent as the search query
- Capture content-free breadcrumbs into a staging inbox as candidates that recall never sees
- Propose memory candidates that a human or policy must promote before they enter canon
- Verify tenant-isolation attestation receipts offline with Ed25519
- Use curation skills to review pending candidates and check local recall hit-rate and latency
- When to use it
- Useful when you want coding agents to carry learnings across sessions without letting the model write directly into shared memory, and you need reviewed, time-stamped facts with per-tenant isolation you can verify.
- Requirements
- A remote MCP endpoint (hosted at mcp.hunta.ai or your own deployment) reached over streamable HTTP, OAuth authentication, and an agent key minted in the console, supplied as a bearer token or via GATHER_URL and GATHER_TOKEN for the Claude Code plugin.
Installation
In SourceWeft
- Open Gather in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.hunta-ai%2Fgather/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"gather": {
"type": "http",
"url": "https://mcp.hunta.ai/mcp"
}
}
}README
This repo is the open integration surface for Gather, a multi-tenant org-memory service (an MCP server plus a REST API) with server-enforced tenant isolation and attestable, curated writes. The memory engine is a hosted service; this repo holds the client integrations (starting with the Claude Code plugin) so your harnesses use that memory automatically, instead of hoping the model remembers to.
What's here
More integrations (Codex, Agent SDK) land here over time.
Quickstart (Claude Code)
Two lines, then a token:
Mint an agent key in the console (scoped to propose + recall, never to write canon), then point the plugin at your tenant:
Recall and capture are live on your next session. Full walkthrough: hunta.ai/get-started.
Using another client (raw MCP)
Not on Claude Code, or prefer raw MCP? Point any MCP client at the server directly
(see examples/mcp-config.json):
What the plugin does
- Auto-recall on every prompt. A
UserPromptSubmithook queries your memory and injects the top facts into the turn, so the agent starts with what it already knows. - Re-inject after compaction. A
SessionStart(compact)hook re-runs recall so injected context survives Claude Code's context resets. - Loss-proof capture.
PreCompactandSessionEndhooks post a content-free breadcrumb to your staging inbox. The transcript is never uploaded. - Curation skills.
/gather:flushreviews pending candidates;/gather:statusshows local recall hit-rate and latency.
The principle is harness-enforced invocation: tool availability is not tool use. Agents do not reliably recall context or write learnings back on their own, so the hooks make it happen by construction, on every turn, without depending on the model's judgement.
How memory works
Gather's differentiator is the write path: the writer never decides.
- Capture lands candidates in a staging inbox. Candidates are invisible to recall.
- Promotion runs the curated-write pipeline (extraction, dedup, bi-temporal supersession, provenance stamping). This is the only path into canon, and it is a human (or policy) decision.
- Recall returns only sealed, attributable facts. An injected agent can propose noise; it can never seal a fact.
Always-on capture means you never lose a learning to a closed session; the staging wall means an unreviewed breadcrumb can never pollute the memory your agents read. Read more: the curation gate.
Fail-open by construction
A slow or unreachable memory server never blocks or degrades a turn.
- 8-second hook timeout.
- Every error path (timeout, 4xx/5xx, missing token, network failure) exits
0with no output: inject nothing, continue. - Automatic capture only ever adds candidates to staging, so canon is never touched on any error path.
Worst case for a down server is a turn with no injected context, never a stalled turn.
Privacy
Everything goes only to the GATHER_URL you configure. Recall sends the prompt text as a search
query; capture sends a breadcrumb (event, cwd, session id, timestamp) and never the transcript.
On the hosted service that endpoint is mcp.hunta.ai; on Estate it is your own deployment and nothing
leaves your infrastructure. Full data-flow table: docs/plugin.md.
Why Gather
Honest comparisons, including where we're behind: hunta.ai/compare.
Community & support
- Issues and feature requests: GitHub Issues
- Security reports: see SECURITY.md
- Questions: [email protected]
Contributing
Integrations and fixes welcome. See CONTRIBUTING.md and our Code of Conduct.
License
Source: README.md at commit a95abc3
Tools
0Version history
1- v0.1.0LatestSep 26, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts