Your agents answer from what you published.

Help desk runbooks, security policies and incident procedures, with citations and review-by dates. Agents can draft changes, but nothing goes live until you approve it.

A Library of published Items, with Connect and Review Lock

Demo data is fictional.

Works with

CursorClaude CodeClaude Desktopclaude.ai & hosted web connectorsLibreChat (Reader key)

Agents draft. People publish. Readers see only what's approved.

MCPEncode stores the facts your agents rely on, like policies, procedures, runbooks and course material, as Items in Libraries. Agents connect to one Library to look Items up and suggest edits. With Review Lock on, those edits wait in Pending until a person publishes them.

  1. 01

    Add a Library

    Pick a starter (Policy, Procedure, Documents) or Custom. A person approves the schema once.

  2. 02

    Connect an agent

    Paste the Library's Connect link into your MCP client. Sign in, click Allow. That connection sees this one Library only.

  3. 03

    Agent drafts

    create_item / update_item land in Pending under Review Lock. The published version stays live.

  4. 04

    A person Publishes

    A Publisher reviews the diff and Publishes, or Cancels. Readers and agents get the new version only then.

Try it: Review Lock vs. Review Unlock

Flip the write mode, then have the agent save an edit.

Review Lock (default)

Waiting for the agent…

Live — what Readers & agents see

Visitor Wi-Fi policy · v1

Pending — Publishers only

—

Built so agents can't quietly change the facts.

One link, one Library

Each Connect link reaches exactly one Library. Tools on offer depend on the caller's role there: Reader or Publisher.

OAuth 2.1 built in

Clients register themselves, people sign in and click Allow. Or plug in an external OIDC issuer such as Zitadel. Disabling an account takes effect on the next request.

Citations with version

Every answer carries the published version, date, publisher and a link, ready to quote as cite_as. Pending drafts are never cited.

Audit log

list_audit shows who called which tool in a Library, for Publishers and the Site admin.

Review-by freshness

Runbooks and policies get a review-by date. Stale answers carry a warning; strict mode refuses them and names the owner. A Review queue has one-click Still accurate.

Agent-suggested aliases

"We got phished" finds the incident runbook. Agents suggest labels and aliases with suggest_labels; a person approves them like any edit.

The MCP tools

whoamiIdentity, library, role
list_itemsLook up by question or browse; one clear match returns the full published Item
open_itemFull Item by id (published version; Publishers may read the draft)
search_shelfPublished summaries across the Library's Shelf
create_item · update_itemSave to Pending (Review Lock) or publish at once (Review Unlock)
suggest_labelsSuggest labels and aliases for a published Item; a person approves
delete_itemRemove an Item
create_library · propose_table · propose_fieldDesign a Library; a person approves the schema
list_auditWho called which tool in this Library

Anywhere an agent needs the approved answer.

Help desk runbooks

VPN, lockouts, printers, laptop setup. Aliases and typo correction match how users actually ask; a Review queue keeps runbooks current.

Security policies

Policies with owner, version, effective and review dates. Agents cite the version in force, and strict mode stops them quoting one past review.

Incident response

The first-hour runbook your agent hands out is the one a person approved, not a draft. Edits wait in Pending.

Beyond IT

The same model works for support playbooks, HR handbooks, product docs and course material. Entity keys let repeated syncs update one Item.

Self-host in four steps

Needs Docker with Compose, and openssl.

  1. 1. Clone

    git clone https://github.com/hkrlogic/MCPEncode.git && cd MCPEncode
  2. 2. Create .env with fresh secrets (never overwrites a value)

    scripts/init-env.sh
  3. 3. Start the app and Postgres

    docker compose up -d --build
  4. 4. Open http://127.0.0.1:3000/

    Create the first account with SETUP_TOKEN from .env. It becomes the Site admin. Add a Library, add an Item, Publish.

Then connect your agent

Open a Library → Connect → copy the Connect link.

claude mcp add --transport http my-library <Connect link>

Your client opens a browser to sign in and Allow. Use 127.0.0.1, not localhost.

Questions

Can an agent publish or approve its own changes?

No. MCP has no publish, approve, write-mode or revert tool. Under Review Lock, a person Publishes in the web UI.

Do Readers see an Item while it's being edited?

They see the last published version until the edit is Published. Draft text is never returned to them.

What happens when a runbook goes stale?

Past its review-by date, answers carry a warning naming the owner. Turn on strict mode and agents refuse it instead. The owner clicks Still accurate in the Review queue, or edits and Publishes.

Is it hosted, or do I run it?

You run it: one Node.js 22 app plus PostgreSQL 16+, via Docker Compose.

How do agents authenticate?

Built-in OAuth 2.1 sign-in, or an external OIDC issuer such as Zitadel. A Reader key gives a shared agent read-only access without sign-in.

What if a Connect link leaks?

Rotate it under Connect. The old link stops working; Access grants stay.

Give your agents a source of truth that people control.