DocsMint MCP Server
io.github.HiAi-gg/docsmint
Cloud or self-hosted knowledge workspace with hybrid search, GraphRAG, and MCP tools for AI agents.
What is the DocsMint MCP server?
DocsMint is a document management and knowledge platform that turns your notes, guides, and documentation into searchable knowledge accessible to AI agents. It offers hybrid search combining keywords, semantic meaning, and graph relationships, with access via MCP, REST API, SDK, and CLI. Available as a managed cloud service or self-hosted Docker deployment.
DocsMint lets you write and organize documents in a rich editor, then search them with semantic understanding and give AI agents secure access through MCP tools. It combines multiple search techniques (lexical, fuzzy, semantic vectors, graph neighbors) with reranking, supports category-scoped permissions for least-privilege integrations, and automatically indexes changes in the background. Use the managed cloud version for instant setup or self-host with Docker for full control.
How to install DocsMint
Copy-paste configuration for popular MCP clients.
HIAI_DOCS_URLBase URL of your running self-hosted DocsMint REST API, for example http://localhost:50700. For Cloud MCP, use the Streamable HTTP remote below.
HIAI_DOCS_API_KEYrequiredsecretCreate an API key in your self-hosted DocsMint browser UI. The stdio bridge uses it only with your own API; it does not install the Cloud OAuth server. Prefer workspace-bound or category-scoped credentials.
AuthorizationrequiredsecretDocsMint Cloud remote at https://docsmint.com/mcp; no self-hosted server is required. Follow https://docsmint.com/mcp/connect?source=mcp_registry for the currently supported OAuth discovery and client-connection methods. Browser consent binds access tokens to a workspace, optional category, and requested scopes. API-key clients can use Authorization: Bearer <key> with a workspace-bound or category-scoped credential created in the authenticated browser UI. Credential management requires a browser session. For self-hosting, use the stdio package with your own API and API key; it does not install the Cloud authorization server.
X-Docsmint-WorkspaceCanonical workspace slug. Bound workspace keys may omit this header.
Tools & capabilities
Tools this server exposes to the agent.
search— Search documents using hybrid search combining keywords, semantic meaning, typo tolerance, and graph relationships across languages.read— Retrieve the full content of a specific document by ID.list— List documents in your workspace with filtering and pagination.create— Create a new document with title and content in Markdown or TipTap JSON format.update— Update an existing document's title, content, or metadata.delete— Delete a document from the workspace.batch_documents— Perform the same action on multiple documents by explicit IDs.export— Export documents in Markdown or other formats.share— Share documents or set sharing permissions.publish— Publish documents for public access.move— Move documents between folders or categories.tag— Add or manage tags on documents.version_history— Access and restore previous versions of documents.attachment_upload— Upload and attach files to documents.category_access— Manage category-scoped permissions for integrations.
Use cases
- Search your project documentation with semantic understanding to answer questions about architecture, decisions, and implementation details.
- Give AI agents secure read/write access to a specific category of documents without exposing your entire knowledge base.
- Maintain a living knowledge base that auto-indexes as you edit, keeping search results always current.
- Build CLI tools or automations that create, update, and search documents programmatically via the SDK or REST API.
- Self-host your documentation on your own infrastructure with full control over data, embeddings, and search configuration.
DocsMint MCP server FAQ
DocsMint is a document workspace that combines rich editing, semantic search, and AI agent integration. It uses hybrid search (keywords, meaning, fuzzy matching, graph relationships) and reranking to find relevant documents, then exposes them to AI agents via MCP, REST, SDK, or CLI with fine-grained permissions.
DocsMint is open-source (Apache 2.0) and free to self-host with Docker. A managed cloud version is also available at docsmint.com; pricing is not detailed in the README.
For DocsMint Cloud, visit https://docsmint.com/mcp/connect, sign in, select your workspace, and follow your client's connection instructions. For self-hosted, run `npx --yes --package @hiai-gg/docsmint docsmint-mcp` with HIAI_DOCS_URL and HIAI_DOCS_API_KEY environment variables pointing to your local instance.
DocsMint Cloud uses OAuth (browser consent) or API keys created in the authenticated UI. Self-hosted instances use API keys generated in the web application settings. Category keys provide least-privilege access with explicit read, edit, and write permissions.
Yes. Clone the repository, run `bash scripts/quickstart.sh` with Docker and Docker Compose v2, and provide an OpenRouter API key or local Ollama instance. The application runs on localhost:50701 with PostgreSQL, Redis, and SeaweedFS.
DocsMint combines exact title matches, multilingual lexical search, typo-tolerant fuzzy matching, semantic vectors, adaptive query expansion, and Apache AGE graph neighbors. Results are reranked using a cross-encoder (Voyage rerank-2.5 by default) to improve relevance.
README (reference)
Source of truth, from the repository.
DocsMint
Turn your documents into knowledge you and your AI agents can use.
Write and organize notes, guides, and project documentation in one workspace. Find answers with search that understands related concepts, then give your agents access to the same documents through MCP, REST, the SDK, or CLI.
Connect DocsMint Cloud to get started without operating the stack, or self-host with Docker to run the Apache-2.0 application on your own infrastructure.
<img width="1920" height="974" alt="DocsMint installable document workspace" src="https://github.com/user-attachments/assets/94701d01-a361-4ca1-b16d-de2a0c64d684" />Connect your AI agent
Connect DocsMint Cloud instantly or run the self-hosted stdio bridge against your own DocsMint API. Both paths give agents access to persistent knowledge; the self-hosted bridge exposes 22 focused tools covering all 31 existing operations plus bounded batch actions and direct workspace-item inspection, with 2 prompts and 3 resources.
Recommended: DocsMint Cloud setup. No server installation is required. Sign up or log in, choose your workspace, and follow your client's connection instructions. OAuth-capable clients use browser consent; API-key clients create an MCP/API credential in the authenticated browser UI. Hosted MCP follows your plan and workspace permissions. Prefer workspace-bound or category-scoped credentials.
The Cloud endpoint is https://docsmint.com/mcp (Streamable HTTP). OAuth-capable
clients discover the hosted resource and authorization-server metadata; current
authorization and client-connection methods are described in the
DocsMint Cloud setup guide.
Browser consent binds the one-hour opaque access token to the selected workspace,
optional category, and requested scopes. Refresh tokens are not issued. API-key clients can instead send
Authorization: Bearer <key> with an MCP/API credential created in the authenticated
browser UI. Credentials cannot create or elevate other credentials; lifecycle
management belongs to the signed-in browser session.
Self-hosted alternative: run DocsMint with Docker, create an API
key in its browser UI, and configure HIAI_DOCS_URL and HIAI_DOCS_API_KEY for
npx --yes --package @hiai-gg/docsmint docsmint-mcp. Install Bun 1.3.14 or
later to execute the published binary. The npm package is a stdio bridge to
your own API; it does not install the DocsMint application or Cloud OAuth server.
See the MCP guide
for client configuration. The Glama OSS Server listing
describes this bridge; the hosted DocsMint Cloud Connector
is a separate listing.
Why DocsMint?
- Keep knowledge easy to edit. Use a rich visual editor or Markdown; organize documents with folders, categories, and tags.
- Find the document you mean. Search combines keywords, meaning, typo tolerance, and graph relationships across languages.
- Keep agents close to the source. Let your tools search, read, and update the same knowledge through MCP, REST, a typed SDK, and CLI.
- Choose what an integration can access. Category keys grant explicit
read,edit, andwritepermissions for a defined part of your library. - Keep retrieval up to date. Document edits and metadata changes refresh the search index automatically in the background.
- Choose how you run it. Use managed DocsMint or self-host the application, database, search, queues, and files.
What's new in 1.0.2?
- Make MCP tool selection clearer: use a single-document tool for one document
and
batch_documentswhen multiple explicit IDs need the same action. - Keep the 22-tool catalog, all 31 underlying operations, input schemas, authorization, and stdio behavior unchanged. The LobeHub tool descriptions match the released MCP catalog.
- DocsMint Cloud remains a separate hosted Connector. Cloud descriptions change only when the hosted service adopts this package version.
No database migration is required. See the release notes and changelog.
Install with an AI agent
Prefer an assisted self-hosted setup? Give your coding agent this prompt. You will need Docker and a choice of AI provider.
Install DocsMint from https://github.com/HiAi-gg/docsmint.
Verify Docker and Docker Compose v2, clone the repository, and run
`bash scripts/quickstart.sh`. Do not print or commit .env. Ask me to enter only
an OpenRouter key or select Ollama, then run quickstart again. Verify
http://localhost:50701, http://localhost:50700/api/health, and
`docker compose ps`. Do not replace Bun, rewrite migrations, disable GraphRAG,
or delete volumes.
After startup, open http://localhost:50701 and create the first account. For manual installation, use the Docker quickstart below.
Quickstart
Requirements
- Docker Engine or Docker Desktop
- Docker Compose v2
- One of:
- an OpenRouter API key; or
- a local Ollama instance
Start with Docker
git clone https://github.com/HiAi-gg/docsmint.git
cd docsmint
bash scripts/quickstart.sh
On its first run, the script creates an ignored root .env, generates the
database, authentication, and storage secrets, builds the PostgreSQL image,
applies migrations, and starts the complete application.
Published application images are on
Docker Hub. There is no untagged
latest image; pull the role-specific tags:
docker pull vgalibov/docsmint:api-latest
docker pull vgalibov/docsmint:web-latest
docker pull vgalibov/docsmint:caddy-latest
Use versioned tags api-v1.0.2, web-v1.0.2, and caddy-v1.0.2 for
reproducible deploys. Caddy is the supporting reverse proxy with rate limiting;
it is separate from the API and web application. The quickstart still builds the Compose stack from this repository so PostgreSQL,
Redis, and SeaweedFS start together with the application.
For OpenRouter, add one value to .env and run the script again:
OPENROUTER_API_KEY=sk-or-your-key
For Ollama, select the local provider instead:
AI_PROVIDER=ollama
OLLAMA_PORT=11434
Then make sure the configured local models are available:
ollama pull bge-m3
ollama pull qwen3:8b
bash scripts/quickstart.sh
Open http://localhost:50701. The API health endpoint is http://localhost:50700/api/health.
First use
- Create your account in the web application.
- Create a category or folder and add or import a document.
- Wait for the document pipeline to finish chunking and embedding.
- Search using an exact phrase, a related concept, an alternate language, or a misspelling.
- Open Settings → API when you want to connect a CLI, MCP client, or external application.
The canonical local ports are:
| Service | Port |
|---|---|
| Web application | 50701 |
| REST API | 50700 |
| PostgreSQL | 5437 |
| Redis | 6384 |
| SeaweedFS S3 gateway | 50702 |
| SeaweedFS filer UI | 50703 |
See Deployment for domains, TLS, provider tuning, backups, and production operation.
Embedding provider URLs, models, and credentials are deployment configuration. They are never stored in browser settings or local storage.
Use DocsMint from the terminal
One public package, @hiai-gg/docsmint, includes the TypeScript SDK,
docsmint CLI, and docsmint-mcp bridge. These clients connect to a running
DocsMint deployment; use the Docker quickstart to install the self-hosted server.
bun add @hiai-gg/docsmint
bunx --package @hiai-gg/docsmint docsmint init \
--url http://localhost:50700 \
--key 'your-global-or-category-key'
bunx --package @hiai-gg/docsmint docsmint search "project architecture"
bunx --package @hiai-gg/docsmint docsmint list
bunx --package @hiai-gg/docsmint docsmint read <document-id>
bunx --package @hiai-gg/docsmint docsmint create \
--title "Release notes" --content "# Highlights"
Credentials can also be supplied through HIAI_DOCS_URL and
HIAI_DOCS_API_KEY. See the CLI guide for every
command and configuration precedence.
Connect an MCP client
Give agents a secure path to search, read, and maintain your knowledge without database or filesystem access. DocsMint publishes MCP tools plus ready-made research prompts, scoped resources, and a document-manager skill.
Hosted DocsMint
Connect directly to the managed Streamable HTTP endpoint. Keep the API key in an environment variable rather than writing it into client configuration:
codex mcp add docsmint \
--url https://docsmint.com/mcp \
--bearer-token-env-var HIAI_DOCS_API_KEY
Self-hosted DocsMint
Run the published stdio bridge against your own DocsMint API:
{
"mcpServers": {
"docsmint": {
"command": "npx",
"args": ["--yes", "--package", "@hiai-gg/docsmint", "docsmint-mcp"],
"env": {
"HIAI_DOCS_URL": "http://localhost:50700",
"HIAI_DOCS_API_KEY": "your-global-or-category-key"
}
}
}
}
Category keys let you expose only the documents and operations an agent needs. Use a global key only for trusted owner-wide automation. See the complete MCP reference for Bun, npm, local checkout, all tools, prompts, resources, permissions, and REST mappings.
TypeScript SDK
bun add @hiai-gg/docsmint
import { DocsClient } from '@hiai-gg/docsmint';
const docs = new DocsClient({
baseUrl: 'http://localhost:50700',
apiKey: process.env.HIAI_DOCS_API_KEY,
});
const created = await docs.createDoc({
title: 'Meeting notes',
content: '# Agenda',
});
const results = await docs.search('what did we decide?');
console.log(created.id, results.items);
The SDK is a typed fetch client with retries for transient failures and
idempotent document creation retries. See the
SDK reference and REST API.
API keys and integrations
Create and revoke integration keys from Settings → API.
| Credential | Intended use | Access |
|---|---|---|
| Global API key | Trusted owner-wide CLI, MCP, SDK, or service | All owner content |
| Category key | Least-privilege agent or product integration | One category with selected permissions |
| Operator key | Administration and reindex operations | /api/admin/* only |
Category permissions are explicit and non-hierarchical:
readpermits list, read, search, and export;editpermits updates to existing content, attachments, and versions;writepermits create, move, delete, share, and publish operations.
Combine permissions when an integration needs more than one capability.
API-key lifecycle operations require the owning browser session; an API key
cannot create or elevate another key. Server-to-server integrations are not
affected by browser CORS. Browser integrations must add their exact origin to
CORS_ORIGINS.
What is included?
Documents use structured TipTap JSON as canonical content. Markdown is the source-editing, import, and export format. The same document store serves the web application and public integration interfaces.
frontend/ SvelteKit workspace and TipTap editor
backend/ Elysia REST API, search, workers, and authentication
packages/db/ Drizzle schema and migrations
packages/sdk/ Typed API client
packages/cli/ Terminal client
packages/mcp-server/ MCP stdio server
postgres/ PostgreSQL image with vector and graph extensions
The Docker deployment runs:
- Web — document editor, folders, categories, sharing, settings, and search;
- API — documents, attachments, versions, keys, search, and administration;
- PostgreSQL 18 — relational data, pgvector/pgvectorscale vectors, and the Apache AGE graph in one database;
- Redis 8 — BullMQ queues, caching, retries, and job recovery;
- SeaweedFS — S3-compatible attachment storage.
How search works
Every document save schedules background work. Content is chunked, changed chunks are embedded, and the completed generation is activated atomically. The previous valid generation remains searchable if a provider call fails.
Search combines exact title matches, multilingual lexical search, typo-tolerant fuzzy matching, semantic vectors, adaptive query expansion, and Apache AGE graph neighbors. Reciprocal rank fusion combines the channels without allowing one weak provider result to dominate. A cross-encoder then reranks the fused prefix against the original query (Voyage rerank-2.5 by default). On a labeled 24-document corpus that moved MRR 0.969 → 1.000 and nDCG@10 0.958 → 0.986 versus RRF-only. Rerank, expansion, embeddings, and AGE failures keep the remaining channels. Authorization is applied before retrieval and again before results are returned.
GraphRAG is part of the normal search path in the reference configuration. It extracts entities after embeddings are ready and finds related documents beyond direct keyword or vector similarity. It degrades gracefully when an external model is unavailable.
For pipeline internals and tuning, see Architecture and Deployment.
Stack
- Bun 1.4.0+, TypeScript, Elysia, Zod, and Pino
- Svelte 5, SvelteKit, Tailwind CSS, and TipTap
- Better Auth and Drizzle ORM
- PostgreSQL 18, pgvector, pgvectorscale, and Apache AGE
- Redis 8 and BullMQ
- SeaweedFS with its S3-compatible API
- OpenAI-compatible providers through OpenRouter or local Ollama
Documentation
- Documentation index
- Product usage
- Roadmap
- REST API and OpenAPI JSON
- Architecture
- Deployment and operations
- Extension points
- Maintainer release flow
- Security policy
- Changelog
Development
Use Bun 1.4.0 or later for local development.
bun install
bun run lint
bun run typecheck
bun run test
bun run build
Read CONTRIBUTING.md before opening a pull request. Please report vulnerabilities through SECURITY.md, not a public issue.
License
DocsMint is released under the Apache License 2.0.
Built as an independent open-source project in the HiAi ecosystem.
Related MCP servers

Track server changes at a glance—Docker, backups, Proxmox, and system state diffs for homelabs and AI agents.

Find and book verified local home service professionals through AI agents.
Deterministic prompt-injection detector; signed, offline-verifiable verdicts. Not an LLM.
View repository →
KatanA Markdown Linter
Markdown linter, workspace-scoped stdio MCP server, and self-hosted text-only remote MCP server.

Hit The Road Rentals
Search campervans and motorhomes worldwide. 300+ rental companies. AU, NZ, US, CA, UK and more.

Entity intelligence platform with 260 MCP tools across 49 domains for research, web scraping, and quality gates.
