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 Integrations, then Manual setup 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 is 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 is written down in the code and can be found. What cannot 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 is being made rather than reconstructed six months later by whoever inherits it.

What we tell your AI

You can read the exact text it is 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 is 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 has not 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 is 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 is not metered, credited or seat-limited. The paid tier is $120 a year and buys sending a finished structure to somebody who does not 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 Integrations, then Manual setup 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 is 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 does not?

Relationships that are stated rather than inferred. Cursor is already good at finding what calls what, but it cannot 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 does not depend on which space you last had open. You will 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 is 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 is not metered, credited or seat-limited. The only paid feature in Filamental is Publisher, which turns a space into a link or a single HTML file you can send to somebody who does not have the application, at $120 a year.

A first thing to try

Record the next architectural decision you make, while you are 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 is the version of the argument that survives you.

Version
0.3.42
Platforms
Win / macOS / Linux
Personal
Free, permanent
Professional
$120 / year