Skip to main content

Universal MCP server for project documentation with smart classification

Project description

BriefMark logo

BriefMark

Universal MCP server for project documentation
Human reads the same docs as LLM. LLM reads and updates them via MCP tools.

License Python MCP


Install

pip install git+ssh://git@github.com/VladYankovenko/BriefMark.git

Or clone and install in development mode:

git clone https://github.com/VladYankovenko/BriefMark.git
cd BriefMark
pip install -e ".[dev]"

Quick Start

# Go to your project
cd ~/projects/my-app

# Initialize documentation structure
briefmark init

# Start the MCP server
briefmark serve

Features

  • Single Source of Truth — one Docs/ folder for humans and AI
  • Bidirectional — LLM can read AND write documentation via MCP tools
  • Universal — works with any MCP-compatible agent (Cursor, Claude, Cline, Kimi)
  • Lightweight — no external DB, no ML models, everything in project files
  • Auto-Discovery — scans structure without config
  • Frontmatter-native — documents declare their own metadata
  • Section-level precision — read, edit, or delete one section without touching the rest
  • Token-first — every tool returns estimated_tokens; agent sees operation cost
  • Contextual search — search results include excerpts around the match + document outline

Project Structure

my-project/
├── .briefmark/
│   ├── config.json          # BriefMark config
│   └── .index.json          # Auto-generated search index (gitignored)
├── Docs/                    # Documentation root (user-managed structure)
└── .cursor/mcp.json         # Agent MCP config

Setup & Efficiency

BriefMark works out of the box, but project rules make it truly efficient.

Recommended workflow for your agent:

  1. docs_search(query) — find relevant docs first
  2. docs_read_section(path, section) — read only what you need
  3. docs_update_section(path, section, content) — precise edits without full rewrites

Anti-pattern: docs_read + docs_write to change 1–2 sections — wastes tokens and risks collateral damage.

For detailed integration steps (Cursor, Claude, Kimi) and project rules templates, see Docs/Integration.md.

Document Format

Every document MUST have YAML frontmatter:

---
id: network-service
title: Network Service Pattern
category: pattern
summary: One-sentence description of what this document covers.
keywords: [network, api, alamofire]
---

# Network Service Pattern

## Motivation
...

## Implementation
...

Required fields: id, title, category, summary
Recommended: keywords (3–7 terms for search)

MCP Tools

Reading

Tool Description
docs_read Read full document content
docs_outline Get heading structure (table of contents)
docs_read_section Read a single section only
docs_list List all documents with metadata
docs_search Search docs by keyword

Writing

Tool Description
docs_write Create or overwrite a document
docs_update_frontmatter Add or update frontmatter on existing file
docs_append Append a section to the end
docs_update_section Replace one section's body
docs_insert_section Insert a new section after an existing one
docs_delete_section Remove a section

Skills & Templates

Tool Description
skill_list List all available skills
skill_execute Execute a skill with parameters
template_list List available code templates
template_render Render a template with variables

Agent Setup

Cursor

Copy to your project's .cursor/mcp.json:

{
  "mcpServers": {
    "briefmark": {
      "command": "bash",
      "args": ["-lc", "briefmark serve"],
      "cwd": "${workspaceFolder}"
    }
  }
}

bash -lc ensures your shell PATH (conda, venv, pipx) is loaded — this works identically on any machine.

Claude Code

claude mcp add briefmark briefmark serve

Kimi Code / Open WebUI

See examples/kimi-code.md.

CLI Commands

Command Description
briefmark serve Start MCP server
briefmark init Create Docs/ structure
briefmark index --rebuild Rebuild search index
briefmark search <query> Search documentation

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

briefmark_mcp-1.0.0.tar.gz (34.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

briefmark_mcp-1.0.0-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

Details for the file briefmark_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: briefmark_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 34.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for briefmark_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f2af01731593a17c743b29572eb9d330c6d2db8a4066d2ba4e10fb33a30e6b60
MD5 ad3fd6fa3169cb431fede2a30d540a52
BLAKE2b-256 2b5830d07f50dc5fac411a555c1dd1d6bbc2e8971af51ebfc9ff89ae03c855c5

See more details on using hashes here.

File details

Details for the file briefmark_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: briefmark_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 20.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for briefmark_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e15d384d5b223e02ba2b3c8eef4651a8ed2477103458bdb5f6d984c867f6818
MD5 a5f8648eb4fb149f6ebd2c7e2d13a2ff
BLAKE2b-256 42f5b4c9d09b06eda5404affdade0b21b8df18c5c738c48d54023508e56e01d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page