
Filamental
io.github.ScottninePublished by GitHub account Scottninev0.2.17Updated Oct 29, 2026
Search, read and build your Filamental knowledge graph. Local-first: notes stay on your computer.
Overview
Local MCP server for Filamental that lets an assistant search, read and build the markdown knowledge graph in your project.
- What you can do
- Orient and read the graph: structure report, project info, node and connector types, single nodes, connections and subgraphs up to 3 hops
- Search nodes by name, notes and property values, and find the shortest connector path between two nodes
- Get one node's notes plus its neighbourhood as a single markdown document, with a dry run to size it first
- Create, update and delete nodes and connectors, writing the markdown file and index together
- Extract a heading's section into its own node or inline a node back into another, moving content rather than copying it
- Read the structure-design guide and the on-disk format reference
- When to use it
- Useful when you keep notes or research in a Filamental project and want an assistant to explore the graph, answer questions from it, or add and reorganise nodes and connectors while the app shows the changes.
- Requirements
- Runs locally over stdio via npx (Node.js 22 or later). Requires the Filamental desktop app with the project opened in it at least once. By default it follows whichever project the app has open; an optional --project path pins it to one project. No API keys or environment variables are declared.
Installation
In SourceWeft
- Open Filamental in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
filamental-mcp
The Model Context Protocol server for Filamental. It lets Claude and other AI apps search, read and build the knowledge graph in your Filamental project: the same markdown files the app shows you, so every change appears in the app as it happens.
The server runs on your computer, works whether Filamental is open or closed, and makes no network requests of its own.
Requires the Filamental desktop app, with the project opened in it at least once, and Node.js 22 or later.
Setup
From Filamental
Open Settings › AI. Under Connect an AI app, Connect sets up Claude Desktop in one click. For any other app, Show setup beside Other AI apps gives the exact block for that app, with the paths for your computer filled in.
By hand
Add this to your AI app's MCP settings file (claude_desktop_config.json, .mcp.json for
Claude Code, .cursor/mcp.json and so on):
No path is needed. The server works on whichever project Filamental has open, and follows you
when you open another, with no restart. To pin it to one project instead, add
"--project", "/absolute/path/to/your/project" to args.
Tools
Orient and read
Write
The content is moved, never copied, so exactly one copy of any text survives.
Guides
Every tool carries MCP annotations (readOnlyHint, destructiveHint), so your AI app can tell the
read-only tools from the ones that change or delete content.
On Filamental's free plan a project holds 20 nodes, not counting bridges, and that includes nodes
an AI creates: create_node says so when a project is full. Pro has no limit.
Arrow direction
A connector's direction is one of none, outgoing, incoming or bidirectional. Nothing else
is accepted, and an unrecognised value is rejected rather than stored.
On writes (create_edge, create_node, update_node) direction is stated relative to
source → target: outgoing draws the arrowhead at the target, incoming draws it back at the
source, bidirectional draws both, none is a plain line.
On reads (get_connections) direction is instead stated relative to the node you asked about,
because that is what the user sees on screen:
This matters because which end of a connector is stored as source is simply whichever end the
user happened to drag from, and it's invisible on the graph: an undirected connector looks the same
either way round. So the same arrow reads as outgoing from one end and incoming from the other,
and get_connections flips it for you. Filtering with direction: "outgoing" gives the edges whose
arrow points away from the node you asked about. A bidirectional edge matches both outgoing
and incoming, since it genuinely points both ways; undirected matches only edges with no arrow.
Use stored_on only if you're editing the underlying markdown file directly. It says nothing
about what the arrow does.
CLI options
How it works
Every node in a Filamental project is a markdown file with YAML front matter, inside the project folder. The app also keeps a SQLite index of each project for fast search and traversal, stored in the app's own settings folder rather than in the project.
The server opens that index. Read tools query it; write tools update the markdown file and the
index together, and keep any front-matter fields they don't own (Obsidian's tags and aliases,
say) exactly where they were.
Compatibility
On a schema mismatch the server keeps working where it can, since the index is disposable, and annotates any failing call with which side to update.
Licence
MIT. The Filamental desktop app itself is proprietary; its terms are at filamental.space/terms.
Source: mcp/README.md at commit 494c612
Tools
0Version history
3- v0.2.17LatestOct 29, 2026
- v0.2.16Oct 26, 2026
- v0.2.10Sep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.