Skip to main content
Glama

brainforge-mcp

PyPI Python License: MIT

Turn your markdown notes into an AI-powered knowledge graph.

This project implements Andrej Karpathy's LLM Wiki pattern as an MCP server. It converts markdown wikis into knowledge graphs, allowing them to be explored and analyzed by any LLM client.

Core Idea

[원본 자료]  →  [AI가 유지하는 위키]  →  [지식 그래프]  →  [LLM이 탐색·분석]
 논문, 기사       sources/                 graph.json       MCP 도구로 질의
 메모, 영상       concepts/                                  인과 관계 추적
                  entities/                                  건강 진단

What MCP tools do: Knowledge graph exploration, node analysis, causal chain tracking, and wiki health diagnostics. What the LLM does: Read source → Summarize → Create wiki pages → Insert wikilinks/causal relationships.

In short, brainforge-mcp acts as the "eyes" of the wiki, while the LLM acts as the "hands" of the wiki.


Related MCP server: vault-master-mcp

A-to-Z Example: From a single paper to a knowledge graph

Step 0: Installation + Initialization

uvx brainforge-mcp init ~/my-brain

Generated structure:

my-brain/
├── raw/              # 불변 원본 (사용자가 넣는 곳)
│   ├── papers/
│   ├── articles/
│   ├── transcripts/
│   └── notes/
├── wiki/             # AI가 유지하는 위키
│   ├── sources/
│   ├── concepts/
│   ├── entities/
│   ├── syntheses/
│   ├── index.md
│   └── log.md
└── output/           # 블로그, 포트폴리오 등

Step 1: Register with an MCP client

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "wiki": {
      "command": "uvx",
      "args": ["brainforge-mcp", "--vault", "~/my-brain/wiki"]
    }
  }
}

Kiro / Cursor / VS Code (mcp.json):

{
  "mcpServers": {
    "wiki": {
      "command": "uvx",
      "args": ["brainforge-mcp", "--vault", "~/my-brain/wiki"]
    }
  }
}

Step 2: Add source material

Convert a research paper PDF to markdown and save it in raw/papers/:

# 예: marker로 PDF → 마크다운 변환
marker_single "lora-paper.pdf" --output_dir ~/my-brain/raw/papers/

Or save a web article directly as markdown:

<!-- raw/articles/2026-04-17_lora-explained.md -->
---
title: "LoRA 논문 쉽게 설명하기"
source: https://example.com/lora
date: 2026-04-17
type: article
---

# LoRA 논문 쉽게 설명하기
LLM의 가중치를 Freeze하고 저랭크 행렬만 학습하여...

Step 3: Request ingestion from the LLM (What the LLM does)

In chat:

"raw/articles/2026-04-17_lora-explained.md를 읽고 위키에 인제스트해줘"

The LLM reads the source and generates the following files:

wiki/sources/lora-explained.md (Source summary):

---
title: "LoRA 논문 쉽게 설명하기"
created: 2026-04-17
updated: 2026-04-17
tags: [LoRA, Fine-Tuning, PEFT]
sources: [raw/articles/2026-04-17_lora-explained.md]
---

# LoRA 논문 쉽게 설명하기

## Kernel
모델 가중치를 Freeze하고 저랭크 행렬만 학습하여 VRAM 절감.

## 핵심 주장
1. Fully Fine-Tuning 대비 VRAM 대폭 절감
2. 성능은 동등하거나 우수
...

wiki/concepts/lora.md (Concept page):

---
title: LoRA (Low-Rank Adaptation)
created: 2026-04-17
updated: 2026-04-17
tags: [개념, Fine-Tuning, PEFT]
sources: [raw/articles/2026-04-17_lora-explained.md]
---

# LoRA (Low-Rank Adaptation)

## Kernel
가중치 행렬 W를 직접 업데이트하지 않고, 저랭크 행렬 LoRA_A·LoRA_B만 학습.

> [!causal] 인과 관계
> [[lora]] →(가능하게 함)→ [[fine-tuning]]의 효율적 수행
> 신뢰도: 높음 | 출처: [[lora-explained]]

## 관련
[[fine-tuning]], [[transformer]], [[quantization]]

Step 4: Build the graph (MCP tool)

In chat:

"위키 그래프 재빌드해줘"

→ The rebuild_graph tool is called to parse wikilinks + causal relationships from the wiki/ markdown and generate graph.json.

Step 5: Explore knowledge (MCP tool)

Now that the graph exists, you can explore it:

"LoRA가 내 위키에서 어떤 위치야?"

explain_node("LoRA") is called:

## LoRA (Low-Rank Adaptation)
카테고리: concepts | 태그: Fine-Tuning, PEFT

### 위치 분석
- 연결도: 9 (상위 26%) → 중간 연결자
- 인과 역할: 기반 기술 — 다른 1개 개념을 가능하게 함

### 인과 요약
- LoRA →(가능하게 함)→ Fine-Tuning의 효율적 수행

### 성장 제안
- 인과 관계 callout 추가 권장 (현재 1개)
"위키 상태 어때?"

graph_summary() is called:

## 위키 건강 리포트

### 규모: 초기 단계
- 실제 페이지: 5개 (concepts 2, sources 1, entities 1)
- 밀도: 2.4 엣지/노드 → 낮은 밀도 — 위키링크 추가 권장

### 약점
- 미해결 노드 3개 (37.5%)
- 인과 비율 5.0% — callout 추가 권장

### 다음 행동
1. 미해결 페이지 생성: transformer(2연결), quantization(1연결)

Features

  • 🔗 Automatic knowledge graph building based on wikilinks + causal relationships

  • 🧠 Semantic interpretation — Contextual analysis like "top 26% intermediate connector" rather than just "9 connections"

  • 📊 Health diagnostics — Concrete suggestions for the wiki's strengths/weaknesses/next steps

  • Causal chain tracking — Analyze the "why" of connections between concepts upstream/downstream

  • 🔌 MCP standard — Works anywhere, including Claude Desktop, Cursor, Kiro, and VS Code

Tool List

Tool

Description

Who calls it?

explain_node

Node profile — location analysis, causal role, growth suggestions

LLM calls automatically

find_path

Shortest path between two concepts — connection strength, mediator node interpretation

LLM calls automatically

causal_chain

Causal network — upstream/downstream, natural language interpretation of relationships

LLM calls automatically

graph_summary

Wiki health report — scale, density, action suggestions

LLM calls automatically

rebuild_graph

Graph rebuild — update after markdown changes

LLM calls automatically

Note: Creating/editing wiki pages is done directly by the LLM, not by MCP tools. brainforge-mcp specializes in "reading + analysis," while "writing" is the LLM's role.

Causal Relationship Notation

Wikilinks ([[]]) only represent connections. The "why" behind the connection is specified via causal callouts:

> [!causal] 인과 관계
> [[메타러닝]] →(가능하게 함)→ [[DiscoRL]]의 RL 규칙 자동 발견
> 신뢰도: 높음 | 출처: [[discovering-sota-rl-algorithms]]

Supported relationship types:

  • →(enables)→ / →(improves performance)→ / →(degrades performance)→

  • →(is based on)→ / →(advances)→ / →(replaces)→

  • →(includes)→ / →(is applied to)→

Applying to an existing Obsidian vault

If you are already using Obsidian, you can create a wiki/ folder inside your vault and specify it with the --vault option. It will automatically parse existing [[wikilinks]].

License

MIT


Inspired by Andrej Karpathy's LLM Wiki idea.

Available Tools

5 tools
causal_chainC

특정 노드와 관련된 모든 인과 관계를 조회한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes검색할 노드 이름 또는 ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description states it 'retrieves all causal relationships' but doesn't specify whether this is a read-only operation, what permissions might be required, whether there are rate limits, what format the relationships are returned in, or if there are any side effects. For a tool with no annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently states the tool's purpose without unnecessary words. It's front-loaded with the core action ('retrieves') and resource ('causal relationships'). While concise, it could be slightly more informative given the lack of annotations and sibling tools, but it doesn't waste space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is an output schema (which should cover return values), no annotations, and a simple input schema with full coverage, the description is minimally adequate. However, it doesn't address behavioral aspects like safety or performance, nor does it differentiate from sibling tools. For a tool with no annotations, it should provide more context about what 'retrieves' entails operationally.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'query' documented as 'node name or ID to search for'. The description adds no additional meaning beyond what the schema provides—it doesn't clarify what constitutes a valid node name/ID, provide examples, or explain how the query is processed. With high schema coverage, the baseline is 3, and the description doesn't enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the purpose as 'retrieves all causal relationships related to a specific node' which is clear but somewhat vague. It specifies the verb 'retrieves' and resource 'causal relationships', but doesn't distinguish from sibling tools like 'explain_node' or 'find_path' which might also retrieve node-related information. The purpose is understandable but lacks specificity about what makes this tool unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'explain_node', 'find_path', 'graph_summary', or 'rebuild_graph', nor does it specify scenarios where this tool is appropriate versus when other tools should be used. There's no indication of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_nodeC

노드의 상세 정보와 연결 관계를 조회한다. 노드 이름이나 ID의 일부를 입력하면 해당 노드의 카테고리, 파일 경로, 태그, 나가는/들어오는 엣지 목록을 반환한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes검색할 노드 이름 또는 ID (부분 매칭 지원)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a retrieval/query operation (조회한다) and mentions partial matching support, but doesn't address important behavioral aspects like whether this requires authentication, has rate limits, returns paginated results, or what happens with ambiguous matches. For a query tool with zero annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences that efficiently convey the tool's purpose and what it returns. The first sentence states the core function, and the second provides additional details about input and output. There's no wasted text, though it could be slightly more structured for optimal front-loading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (which should document return values), the description doesn't need to explain return format details. However, for a query tool with no annotations, the description should provide more behavioral context about how the tool operates (e.g., search behavior, error cases, performance characteristics). The current description is adequate but leaves room for improvement given the complexity of graph query operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage, with the single parameter 'query' well-documented in the schema itself. The description adds that it accepts '노드 이름이나 ID의 일부' (partial node names or IDs) and that it supports '부분 매칭' (partial matching), which provides useful context about the parameter's semantics beyond the schema's basic description. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '노드의 상세 정보와 연결 관계를 조회한다' (retrieves detailed information and connection relationships of a node). It specifies the verb (조회한다/retrieves) and resource (노드/node), but doesn't explicitly differentiate from sibling tools like 'find_path' or 'graph_summary' beyond mentioning it returns node details and edges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'find_path' (which likely finds paths between nodes) or 'graph_summary' (which might provide overall graph statistics). It mentions what the tool does but gives no context about when it's the appropriate choice among the available sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_pathB

두 노드 사이의 최단 경로를 BFS로 탐색한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
startYes시작 노드 이름 또는 ID
endYes도착 노드 이름 또는 ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the algorithm (BFS) but doesn't describe performance characteristics (e.g., time complexity for large graphs), what happens if no path exists, or output format details. For a path-finding tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in Korean that directly states the tool's function without unnecessary words. It is front-loaded and wastes no space, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (graph path-finding), the description is minimal. It lacks details on output (though an output schema exists, which helps), error handling, and behavioral traits. With no annotations and a simple input schema, the description is adequate but leaves gaps in understanding how the tool behaves in edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with clear descriptions for both parameters ('start' and 'end' nodes). The description adds no additional parameter semantics beyond what the schema provides, such as node format examples or constraints. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '두 노드 사이의 최단 경로를 BFS로 탐색한다' (finds the shortest path between two nodes using BFS). It specifies the verb (탐색한다/finds), resource (경로/path), and algorithm (BFS). However, it doesn't explicitly differentiate from sibling tools like 'causal_chain' or 'explain_node', which might also involve path-related operations in a graph context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where BFS might be preferred over other algorithms, nor does it specify prerequisites or exclusions. The agent must infer usage from the tool name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

graph_summaryB

현재 위키 그래프의 전체 요약 통계를 반환한다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns summary statistics but doesn't specify what those statistics include (e.g., node count, edge density), whether it's a read-only operation, performance characteristics, or error conditions. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in Korean that directly states the tool's function without unnecessary words. It is appropriately sized for a no-parameter tool and front-loads the core purpose ('현재 위키 그래프의 전체 요약 통계를 반환한다'). Every part of the sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple read operation with no parameters), the description is minimally adequate. It lacks details on what 'summary statistics' entail, but the presence of an output schema means the description doesn't need to explain return values. However, with no annotations and incomplete behavioral context, it leaves gaps for the agent to understand the tool's full behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details beyond the schema, but since there are no parameters, a baseline score of 4 is appropriate as it doesn't need to compensate for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '현재 위키 그래프의 전체 요약 통계를 반환한다' (returns summary statistics of the current wiki graph). It specifies the verb ('반환한다' - returns) and resource ('위키 그래프' - wiki graph), distinguishing it from siblings like 'find_path' or 'explain_node'. However, it doesn't explicitly differentiate from 'rebuild_graph' or 'causal_chain' in terms of scope or output type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for usage, or comparisons to sibling tools like 'explain_node' (for detailed node info) or 'find_path' (for graph traversal). The agent must infer usage based solely on the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rebuild_graphB

위키 마크다운을 파싱하여 그래프를 재빌드한다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool parses wiki markdown and rebuilds a graph, but it does not disclose critical traits such as whether this is a read-only or destructive operation, what permissions are required, how long it takes, or any rate limits. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in Korean that directly states the tool's action. It is front-loaded with the core purpose and has no wasted words, making it highly concise and well-structured for its purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally complete. However, it lacks details on behavioral aspects (e.g., whether it's destructive or read-only) and usage context, which are important for a tool that rebuilds a graph. The output schema may cover return values, but the description should still provide more context about the operation's nature and when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description does not add parameter details, which is appropriate since there are none. The baseline for 0 parameters is 4, as the description does not need to compensate for missing parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's purpose: parsing wiki markdown to rebuild a graph. This is clear but vague about what 'rebuild' entails and doesn't distinguish it from sibling tools like 'graph_summary' or 'explain_node', which might also involve graph operations. It specifies the resource (wiki markdown) and action (parse and rebuild graph) but lacks specificity about the scope or outcome.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or exclusions, and it fails to differentiate from sibling tools such as 'graph_summary' (which might summarize a graph) or 'find_path' (which might navigate a graph). This leaves the agent without clear usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv0.1.0
    • First observedcausal_chain
    • First observedexplain_node
    • First observedfind_path
    • First observedgraph_summary
    • First observedrebuild_graph

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: causal_chain retrieves causal relationships, explain_node provides node details, find_path finds paths between nodes, graph_summary gives overall statistics, and rebuild_graph rebuilds the graph. An agent can easily tell them apart based on their specific functions.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with clear verb_noun structures (e.g., causal_chain, explain_node, find_path, graph_summary, rebuild_graph). The naming is uniform and predictable throughout the set.

Tool Count5/5

With 5 tools, the count is well-scoped for a wiki graph management server. Each tool serves a distinct and necessary function, covering key operations like querying, explaining, pathfinding, summarizing, and rebuilding without being excessive or insufficient.

Completeness4/5

The tool set provides strong coverage for core wiki graph operations, including querying nodes and relationships, pathfinding, and graph maintenance. A minor gap exists in update or delete operations for nodes or edges, but agents can work around this using rebuild_graph for modifications.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    F
    maintenance
    An MCP server that integrates the zk note-taking system with LLMs, enabling users to search, read, create, and manage notes. It provides tools for link analysis, tag management, and complex note queries to interact with local knowledge bases.
    5
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that treats Obsidian vaults as knowledge graphs, enabling AI agents to traverse wikilinks, assemble token-budgeted context, and search with backlink awareness.
    3
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for persistent, compounding markdown wikis maintained by LLMs. Enables incremental knowledge base building with interlinked pages, search, and raw source management.
    33
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that turns a Markdown folder (e.g. Obsidian vault) into a second brain, capturing readings and ideas, connecting them as concepts, and resurfacing related notes on demand.
    244
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mengro1102/brainforge-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server