Filamental and Cursor

Cursor can read every file in the project and still not know why any of it is like that

Keep the decisions, constraints and dependencies as a structure beside the code, and add it to Cursor as an MCP server in a single JSON file. The model working next to you can then follow stated relationships rather than inferring them from what the code happens to do. Free on every plan.

Connecting it

One JSON file, in one of two places

Add an mcpServers entry named filamental, running node against the bundled server with your space folder passed after a --vault argument:

{
  "mcpServers": {
    "filamental": {
      "command": "node",
      "args": [
        "--no-warnings",
        "/absolute/path/to/filamental-mcp/dist/index.js",
        "--vault",
        "/absolute/path/to/your/vault"
      ]
    }
  }
}

Put that in .cursor/mcp.json inside a project to scope it to that project, or in mcp.json in the .cursor folder of your home directory to have it everywhere. Copy both absolute paths from Settings, then AI, then Other AI apps inside Filamental rather than typing them, since the server ships with the application and lands somewhere platform-specific.

Both paths there are specific to your machine, so a file carrying them is no use to anybody else. If you want it committed alongside the project, set the command to npx with the arguments -y and filamental-mcp and give --vault a relative path such as ./knowledge. That version travels between machines, and the Claude Code page carries the whole block.

Per project is usually right, because the --vault argument then pins each repository to its own structure and there’s no ambiguity about which one is being read. Global is the better choice when you keep one space spanning everything, such as a platform rather than a repository.

What it adds

Relationships that are stated rather than inferred

An editor with a model in it is already good at what calls what, since that’s written down in the code and can be found. What can’t be found there is why the boundary sits where it does, which constraint made the obvious approach wrong, what a migration was meant to unblock, or which decision a proposed change quietly reverses.

In a space those are typed connections between named things, so supersedes, blocks, depends on and was rejected because are different relationships rather than one grey line, each with a direction and a strength. Ask which decisions a change touches and the model walks the connections instead of guessing from the code, which is the difference between a confident answer and a correct one.

It writes as well as reads, so the structure can be maintained from the same window: a decision recorded while it’s being made rather than reconstructed six months later by whoever inherits it.

What we tell your AI

You can read the exact text it’s handed

A short briefing arrives when the connection opens, covering what nodes, categories and connectors are and the conventions that keep a structure readable, and the full skill guide and file format specification are pulled on demand only when a task needs them.

Both are published on this website in full, word for word as they are sent: the skill file and the file format reference. Nothing else runs underneath them. The server is a local process with no network access of its own, and Filamental has no account, no sign-in and no telemetry of any kind.

Requirements, and what it costs

Node 22, one prerequisite, and nothing to pay

One prerequisite, and it’s the only one that catches people out. The server reads the index Filamental builds and never builds one itself, so the space has to have been opened in the application at least once on that machine. A folder it hasn’t seen stops with a message saying exactly that. If reading a folder somebody sent you is what you want, point the AI at the files directly instead, since a space is plain Markdown and no index is involved.

You need Node.js 22 or later and Filamental v0.2.4 or later, on Windows, macOS or Linux. The server ships inside the application, so there’s nothing separate to install, and it is also on npm as filamental-mcp for a machine without Filamental on it.

The connection is free on the Personal plan, which is free permanently with no account and no card, and it isn’t metered, credited or seat-limited. The paid tier is $120 a year, or $12 a month and buys sending a finished structure to somebody who doesn’t have the application.

Asked before connecting

Six straight answers

How do I add Filamental to Cursor as an MCP server?

Add an mcpServers entry named filamental to Cursor's MCP configuration, running node against the bundled server with your space folder passed after a --vault argument. Put it in .cursor/mcp.json inside a project to scope it to that project, or in a mcp.json in the .cursor folder of your home directory to have it available everywhere. Copy both absolute paths from Settings, then AI, then Other AI apps inside Filamental.

Should I configure Cursor globally or per project?

Per project if the structure belongs to one codebase, which is the usual case, because the --vault argument then pins each project to its own space and there’s no ambiguity about which one the model is reading. Configure it globally when you keep a single space that spans everything you work on, such as one covering a whole platform rather than a repository.

What does this give Cursor that reading the codebase doesn’t?

Relationships that are stated rather than inferred. Cursor is already good at finding what calls what, but it can’t find out why a boundary was drawn where it was, which constraint ruled out the obvious approach, or which decision a proposed change quietly reverses. In a space those are typed connections between named things, so the model follows them instead of guessing from the code.

Does Cursor need Filamental to be running?

No. The MCP server is a separate local process reading the same folder, so it works whether or not the application window is open, and the --vault argument means it doesn’t depend on which space you last had open. You’ll often keep Filamental open on a second screen anyway, since watching the structure change while the model writes to it is the fastest way to catch it misunderstanding something.

Is anything sent to Filamental when Cursor uses the connection?

No, because there’s nothing of ours in the path. The server is a local process talking to Markdown files in a folder on your own disk, and whatever leaves the machine is what Cursor sends to its own model provider, exactly as it does for the rest of your code. Filamental has no account, no sign-in and no telemetry of any kind.

What does the Cursor connection cost?

Nothing. It is free on the Personal plan, which is free permanently with no account and no card, and it isn’t metered, credited or seat-limited. Publishing one link is free too, and the paid tier, at $120 a year or $12 a month, adds more links, updates to a link already sent, the HTML download and presenting.

A first thing to try

Record the next architectural decision you make, while you’re making it

One node for the decision, one for each constraint that shaped it, and the connections between them. It takes about as long as writing the commit message, and it’s the version of the argument that survives you.

Platforms
Win / macOS / Linux
Personal
Free, permanent
Professional
$120 / year, or $12 / month