trackmcp
Back to directory
Nyrest

capacities-mcp-enhanced

View on GitHub

An enhanced MCP server for Capacities API 2.0 with full CRUD, precise block editing, Markdown support, file uploads, and API key pooling.

2 stars TypeScriptOthers Updated Aug 18, 2026
agentaicapacitiescapacities-iomcpmcp-servermcp-toolsenhancedjsonmarkdown

Documentation

Capacities MCP Enhanced — API 2.0 for AI Agents

The official MCP server sucks, it's time to make a new one.

> Built for the new Capacities API 2.0 with native precise block level CRUD support.

Capacities MCP brings rich, read-write access to your knowledge base through one agent-friendly server. Agents can discover your object types, understand custom properties, create polished content, make precise edits, save web resources, and work with Daily Notes.

✨ Why Capacities MCP Enhanced

  • ✍️ Markdown & structured block authoring — combine fast Markdown workflows with precise Capacities-native block editing in one server.
  • 🧩 Full CRUD with Capacities API 2.0 — objects, custom properties, collections, blocks, web links, tasks, tags, and Daily Notes.
  • 🤖 Designed for autonomous agents — live schema discovery, consistent responses, focused tools, and clear recovery information.
  • 📤 Agent-friendly MCP file uploads — support multi-file and large-file uploads with built-in MCP progress reporting, streaming transfers, upload verification, and long-running job tracking.
  • 🔑 API key pooling — distribute requests across multiple API keys, improve throughput under rate limits, and provide resilient API access for high-volume workloads.
  • 🔒 Concurrency-safe object operations — same-object reads can run concurrently, while writes use an exclusive lock and automatically wait for active reads or other writes; different objects proceed concurrently.
  • 🎨 Faithful rich content — headings, nested blocks, grids, toggles, tasks, links, entity references, colors, code, and math.
  • 📚 Bundled best-practice skill — a complete agent operating guide is included, so a model can use the server correctly without already knowing Capacities.

🚀 Quick start

Requirements

  • Node.js 20+ or Bun 1.3+
  • One or more personal API keys from the new Capacities API with the permissions you need

Installation

Configure your MCP client to use the Capacities MCP server:

Generate a token in Capacities → Settings → Capacities API → Generate new token. New API tokens begin with `cap-api-`.

Configuring at least 3 tokens with same space and permissions is recommended to avoid rate-limit errors.

Claude Code

json
{
  "mcpServers": {
    "capacities": {
      "command": "npx",
      "args": ["--yes", "capacities-mcp-enhanced@latest"],
      "env": {
        "CAPACITIES_API_TOKEN": "cap-api-key-1,cap-api-key-2;cap-api-key-3"
      }
    }
  }
}

Hermes Agent

yaml
mcp_servers:
  capacities:
    command: "npx"
    args:
      - "--yes"
      - "capacities-mcp-enhanced@latest"
    env:
      CAPACITIES_API_TOKEN: "cap-api-key-1,cap-api-key-2;cap-api-key-3"
    supports_parallel_tool_calls: true

Install the bundled skills (Optional)

By installing the Capacities MCP Best Practices skill, your agent can learn the full workflow, strict content schemas, safe mutation patterns, rate-limit recovery, and common pitfalls.

bash
npx skills add nyrest/capacities-mcp-enhanced

🧰 What agents can do

CategoryToolWhat it does
Discover and read`inspect_space`Discover structures, properties, labels, and available write options.
Discover and read`search_objects`Find objects by title, optionally within selected structures.
Discover and read`list_objects`List cursor-paginated object summaries by structure, tag, or collection.
Discover and read`get_object`Read a complete object as structured content or Markdown.
Create objects`create_object`Create a Page, Task, Tag, or custom object with structured content.
Create objects`create_object_markdown`Create an object from a Markdown document.
Create objects`create_object_from_url`Save a web resource with structured notes.
Create objects`create_object_from_url_markdown`Save a web resource with Markdown notes.
Update content`update_object`Update titles, typed properties, and collections.
Update content`append_content`Add structured blocks to an object.
Update content`append_content_markdown`Add Markdown content to an object.
Update content`update_block`Precisely edit one existing block.
Update content`delete_block`Remove one block and its nested content.
Update content`delete_object`Move an object to trash or permanently delete it when explicitly requested.
Daily Notes`append_daily_note`Add structured blocks to today's or a dated Daily Note.
Daily Notes`append_daily_note_markdown`Add Markdown to today's or a dated Daily Note.
Media uploads`upload_files`Stream one or more local files into Capacities media objects with readback verification.
Media uploads`manage_upload_job`Inspect, wait for, or cancel an in-process background upload job.

`search_objects` is title-only discovery. Use `list_objects` when you already know a structure, tag UUID, or collection UUID and need membership listing; follow `nextCursor` while `hasMore` is true, then pass selected object IDs to `get_object` for full content.

`upload_files` accepts absolute local file paths only; relative paths, directories, and empty files are rejected. Background upload jobs live only in the current MCP process and retain terminal status for a limited time.

Supported environment variables and configuration options

SettingRequiredDefaultDescription
`CAPACITIES_API_TOKEN`Yes, unless every call supplies `apiToken`One API key or a comma/semicolon-separated key pool. The keys must belong to the same space and use the same permissions.
`CAPACITIES_MCP_READBACK`No`true`Set to `false` to disable ordinary mutation readback. Rollback verification remains enabled. Accepted values: `true`, `false`.

Per-call configuration is exposed through the optional `apiToken` argument on

all tools. It overrides `CAPACITIES_API_TOKEN` for that call and accepts the

same key-pool syntax.

⚙️ API key pool and rate limits

`CAPACITIES_API_TOKEN` and the per-call `apiToken` option accept multiple API

keys separated by `,` or `;`.

Keys are selected with round-robin scheduling independently for each endpoint,

skipping keys currently marked as rate-limited.

All keys in one pool must belong to the same space and have the same

permissions. At least 3 keys are recommended; use separate MCP server

instances for multiple spaces.

On `429`, the pool immediately fails over to another key that is not rate

limited. The error is returned only when all keys are rate limited. No waiting,

exponential backoff, or cross-pool retry is performed.

🚅 Concurrency and safe writes

Reads for the same object can run concurrently. A mutation obtains an exclusive

object lock, so it waits for active reads and other writes; reads arriving

during a write wait as well. Operations for different objects proceed

concurrently. This protects the full read → mutate → readback lifecycle against

last-write-wins races.

The Capacities SDK does not expose request cancellation/timeout configuration, so ordinary SDK-backed calls do not use an unsafe client-side timeout race. Multipart media upload is the sole direct-HTTP path: it retains native `AbortSignal` cancellation, explicit per-part progress, pooled-key failover, and independent SDK readback verification.

🛠️ Development

bash
bun run lint
bun run typecheck
bun test
bun run build
bun run verify:tools

The final local release gate is:

bash
npm run release:check
npm publish --dry-run --access public

`npm publish --dry-run` validates the package without publishing it. Actual

publishing additionally requires an authenticated npm account.

Live API tests are available through `bun run test:live` when a dedicated test token is configured.

📚 Documentation

Frequently asked questions

What is capacities-mcp-enhanced?

capacities-mcp-enhanced is An enhanced MCP server for Capacities API 2.0 with full CRUD, precise block editing, Markdown support, file uploads, and API key pooling.

How do I install capacities-mcp-enhanced?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is capacities-mcp-enhanced open source?

Yes — it is hosted on GitHub at https://github.com/Nyrest/capacities-mcp-enhanced and has 2 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP