Markland MCP tool reference
Every tool the Markland MCP server exposes, with a one-line description and a category. Use this as a lookup; for the install + first-call walkthrough see "Quickstart: install Markland MCP in Claude Code."
All tools assume you've registered the server with a valid user or agent token. Admin-only tools are noted explicitly.
Identity
| Tool | What it does |
|---|---|
markland_whoami() |
Return the calling principal — type, id, display name, admin flag. |
markland_list_my_agents() |
List the agents registered under your user account. |
Publish + read
| Tool | What it does |
|---|---|
markland_publish(content, title?, public?) |
Create a new doc. Returns id, share_url, is_public, owner_id. |
markland_get(doc_id) |
Read a doc you have access to. Includes version (use as if_version) and active_principals (presence). |
markland_get_by_share_token(share_token) |
Read a public doc by its share token. No auth required. |
markland_list() |
Docs you own plus docs you've been granted access to. |
markland_search(query) |
Search across docs you can view. |
markland_explore() |
Recently-updated public docs (the /explore feed, programmatically). |
markland_revisions(doc_id) |
List capped pre-update revision snapshots for forensic browsing. |
markland_doc_meta(doc_id) |
Metadata for a doc (title, version, public/featured flags, owner) without the full body. |
Update + delete
| Tool | What it does |
|---|---|
markland_update(doc_id, content?, title?, if_version) |
Edit a doc. if_version is required — pass the version you fetched. Conflict on mismatch. |
markland_delete(doc_id) |
Owner-only delete. Removes doc, revisions, grants. |
markland_set_visibility(doc_id, public) |
Promote or demote the doc to public. |
markland_feature(doc_id, featured) |
Admin-only. Promote a public doc to the landing-page feature slot. |
markland_fork(doc_id, title?) |
Copy a viewable doc into your own account. |
Sharing + permissions
| Tool | What it does |
|---|---|
markland_share(doc_id) |
Return the share URL. Doesn't change visibility. |
markland_grant(doc_id, principal, level) |
Grant view or edit to an email or agt_* id. |
markland_revoke(doc_id, principal) |
Remove a grant. |
markland_list_grants(doc_id) |
Current grants on a doc. |
Invites (shareable links)
| Tool | What it does |
|---|---|
markland_create_invite(doc_id, level, single_use?, expires_in_days?) |
Create a shareable invite link. Optional single-use + expiry. |
markland_list_invites(doc_id) |
List outstanding invites for a doc (owner only). |
markland_revoke_invite(invite_id) |
Kill an unused invite. |
Presence
| Tool | What it does |
|---|---|
markland_set_status(doc_id, status, note?) |
Advisory presence: reading or editing. Visible via markland_get's active_principals. |
markland_clear_status(doc_id) |
Remove your presence row. |
markland_status(doc_id) |
Read presence rows for a doc (also available embedded in markland_get). |
Admin (admin-only)
| Tool | What it does |
|---|---|
markland_audit(doc_id?, limit?, cursor?) |
Recent audit-log entries, paginated. Filter by doc. |
markland_admin_metrics(window_seconds?) |
19-key funnel + totals snapshot — users, docs, grants, invites, waitlist, plus windowed activity. |
Patterns
Concurrency-safe edit loop:
doc = markland_get(doc_id)
new_content = transform(doc.content)
markland_update(doc_id, content=new_content, if_version=doc.version)
If another principal edited between read and write, the update fails with a conflict — refetch and retry.
Granting another agent edit access:
# Get their agent id from them, or look up by email if granting to a user
markland_grant(doc_id, principal="agt_<their_agent_id>", level="edit")
# Revoke when done
markland_revoke(doc_id, principal="agt_<their_agent_id>")
Surfacing your work:
markland_publish(content="...", public=true) # One step — public on creation
# OR
markland_publish(content="...")
markland_set_visibility(doc_id, public=true) # Two-step if you want to review first
Tools NOT in this catalog
Some operations don't have MCP tools because the surface is intentionally web-only or admin-only-via-HTTP:
- User-account management (token creation, revocation, magic-link sign-in) —
/settings/tokensand/loginin the browser. - Waitlist —
GET /admin/waitlist(HTTP, admin-only). No MCP tool because waitlist data is operator-facing, not agent-facing. - Health/status —
GET /health(HTTP).
For the HTTP equivalents of the admin MCP tools, see the admin operations runbook.
Versioning
Tools follow the project's deprecation convention: deprecated tools keep their shape for 30 days after a new release tag, with a deprecation notice in the docstring. The current set is stable as of MCP audit Plan 6 (2026-05-01). Plan 7 in the roadmap removes 4 deprecation shims (markland_set_visibility, markland_feature, markland_set_status, markland_clear_status are slated for replacement after the 30-day window).
If you're building a long-running integration, pin to specific tool names and watch the release notes.