outline-mcp
outline-mcp
Сервер MCP только для чтения для Outline. Предоставляет агенту поиск и доступ на чтение к вашей вики — без записи, по замыслу.
Зачем
API Outline — это плоская RPC-поверхность: каждая конечная точка — это POST {base}/api/<method> с JSON-телом и Bearer-токеном. Такая единообразность означает, что полезный MCP-сервер — это одна функция запроса плюс курируемый список инструментов. Этот пакет намеренно мал: нет зависимостей времени выполнения, кроме MCP SDK и zod, и полный контроль над описаниями инструментов и формой вывода, которые определяют, выберет ли агент правильный инструмент.
Сервер только для чтения: в коде нет ни одного пути создания, обновления, перемещения или архивирования.
Related MCP server: outline-mcp
Инструменты
Инструмент | Метод Outline | Назначение |
|
| Полнотекстовый поиск; возвращает фрагменты, а не тела документов |
|
| Найти страницу, которую вы уже почти можете назвать |
|
| Прочитать один документ в формате markdown |
|
| Найти значения |
|
| Просмотреть коллекцию или дочерние документы |
|
| Посмотреть, как документ менялся со временем |
|
| Прочитать одну более раннюю версию |
|
| Замечания рецензентов, отсутствующие в теле документа |
get_document принимает полный URL, голый urlId или UUID. urlId — это [A-Za-z0-9]{10,15} — слаг без допустимого суффикса идентификатора отклоняется локально, потому что API отвечает 400 validation_error.
Требования
Node 18 или новее (использует встроенный
fetch; без нативных зависимостей).Экземпляр Outline — самостоятельный хостинг или Outline.com.
Начало работы
git clone https://github.com/minhquan2904/outline-mcp.git
cd outline-mcp
npm ciПолучение API-ключа
В Outline: Settings → API & Apps → New API key. Значение начинается с ol_api_ и содержит 38 буквенно-цифровых символов.
Установка двух переменных окружения
export OUTLINE_API_URL=https://your-outline-instance
export OUTLINE_API_KEY=ol_api_…
node index.jsКонфигурация
Сервер читает ровно две переменные окружения:
Переменная | Значение |
| Базовый URL вашего экземпляра Outline, например |
| API-ключ Outline ( |
Claude Code — mcp.json (проект) или .mcp.json (пользователь):
{
"mcpServers": {
"outline": {
"command": "node",
"args": ["/path/to/outline-mcp/index.js"],
"env": {
"OUTLINE_API_URL": "https://your-outline-instance",
"OUTLINE_API_KEY": "ol_api_…"
}
}
}
}Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"outline": {
"command": "node",
"args": ["/path/to/outline-mcp/index.js"],
"env": {
"OUTLINE_API_URL": "https://your-outline-instance",
"OUTLINE_API_KEY": "ol_api_…"
}
}
}
}Примечание: Claude Desktop не раскрывает ссылки ${VAR} в этом файле — вставьте ключ буквально, не пишите "${OUTLINE_API_KEY}".
Любой другой MCP-клиент (Zed, Cline или что-либо, говорящее на протоколе MCP stdio) — та же форма: запустите node /path/to/outline-mcp/index.js с двумя переменными в его окружении.
Как это работает
flowchart LR
CC[Claude Code / any MCP client]
OM[outline-mcp<br/>Node 18+, stdio server]
O[Outline instance]
F[format.js<br/>parse ref · truncate · render]
C[client.js<br/>timeout · error map · 429 retry]
CC -->|stdio| OM
OM -->|"POST /api/{method} · Bearer ol_api_…"| O
OM -.-> F
OM -.-> CСервер никогда не проверяет учетные данные при запуске. Сервер, который завершает работу при загрузке, отображается в клиенте как «не удалось подключиться» без объяснения причин; вместо этого он запускается, перечисляет свои инструменты, и каждый вызов возвращает сообщение с указанием отсутствующей переменной.
Разработка
npm ci
npm test # unit tests, fully offline (fetch is stubbed)
npm run smoke # every tool against a real instance; no-ops without credentialsnpm run smoke требует OUTLINE_API_URL + OUTLINE_API_KEY, указывающих на работающий экземпляр; без них он выводит строку «smoke skipped» и завершается с кодом 0. См. CONTRIBUTING.md о том, как добавить инструмент.
Ограничения
Только для чтения по замыслу. Нет создания, обновления, перемещения, архивирования или записи комментариев.
Вложения не разрешаются. Встроенные изображения и файлы остаются в виде ссылок
/api/attachments.redirect?id=…в markdown; они не загрузятся для агента, читающего текст.Нет упреждающего сигнала ограничения скорости. Экземпляр не возвращает заголовки
RateLimit-*. При429клиент соблюдаетRetry-After(максимум 10 секунд) и повторяет попытку ровно один раз, затем сообщает об ошибке.Длинные документы обрезаются до
maxChars(по умолчанию 40 000) с маркером, указывающим истинную общую длину.
Безопасность
API-ключ передается только в заголовке Authorization исходящих запросов. Любое сообщение об ошибке, покидающее клиент, проходит через этап редактирования, который заменяет ключ на ol_api_***, и ничто на пути ключа (транспорт stdio или журнал stderr) никогда не выводит сам ключ. Если ваш экземпляр Outline поддерживает ключи с ограниченной областью действия, предпочтите ключ с областью только для чтения для этого сервера.
Лицензия
This server cannot be installed
Maintenance
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
Read-only MCP for the Eco game wiki: search, Markdown pages, and wiki_* lookups. No keys, no writes.
Read-only MCP server for the OrchestKit docs: full-text search + Markdown fetch. No auth.
OrganiKPI MCP: search and fetch services, posts and tools as clean markdown (read-only).
Read and write your team's shared, AI-readable wiki from any MCP client.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that enables reading, writing, and searching documents in Outline via its API. It supports document management, full-text search, and collection organization using Markdown formatting.81817MIT
- AlicenseNot gradedqualityDmaintenanceConnects MCP clients to Outline workspaces, enabling agents to safely read, update, and manage documentation through structured tools.462MIT
- AlicenseAqualityDmaintenanceEnables reading Feishu documents and Wiki pages, including full content and metadata, via MCP protocol.234ISC
- AlicenseNot gradedqualityCmaintenanceRead-only MCP server for accessing GitBook content, including spaces, pages, and search, through AI assistants.189MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/minhquan2904/outline-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server