mcp_notes
MCP server for saving, reading, and listing Markdown notes in the filesystem. Enables agents to persistently store reports or notes as plain Markdown files.
README
Notes MCP Server
Отдельный MCP-сервер для сохранения, чтения и списка Markdown-заметок в файловой системе. Он нужен как второй MCP-сервер рядом с внешними источниками данных, например YouTrack MCP:
YouTrack MCP -> агент получает данные -> агент готовит отчет -> Notes MCP сохраняет отчет -> агент отвечает пользователю
Сервер использует Node.js, TypeScript, @modelcontextprotocol/sdk, Streamable HTTP transport и обычные .md файлы. База данных не нужна.
Быстрый запуск
Из корня проекта:
npm install
cp .env.example .env.local
npm run build
npm run start:http
После старта HTTP endpoint доступен по адресу:
http://127.0.0.1:8788/mcp
Healthcheck:
curl http://127.0.0.1:8788/health
Если все в порядке, ответ будет таким:
{"status":"ok","service":"notes-mcp"}
Установка
cd mcp_notes_server
npm install
npm run build
Настройка .env.local
Создай файл mcp_notes_server/.env.local:
MCP_SERVER_TOKEN=change_me
MCP_HTTP_HOST=0.0.0.0
MCP_HTTP_PORT=8788
MCP_HTTP_PATH=/mcp
NOTES_DATA_DIR=./data/notes
Переменные:
MCP_SERVER_TOKEN- bearer token для HTTP endpoint.MCP_HTTP_HOST- host HTTP-сервера.MCP_HTTP_PORT- порт HTTP-сервера.MCP_HTTP_PATH- путь MCP endpoint.NOTES_DATA_DIR- папка для Markdown-файлов.
Запуск HTTP mode
Используй этот режим для bridge, браузерного UI, удаленного подключения или любого клиента, который ходит в MCP по HTTP.
npm run build
npm run start:http
По умолчанию endpoint будет доступен здесь:
http://127.0.0.1:8788/mcp
Healthcheck:
curl http://127.0.0.1:8788/health
MCP-запросы к /mcp должны передавать заголовок:
Authorization: Bearer change_me
Без MCP_SERVER_TOKEN HTTP mode не стартует.
Smoke-проверка HTTP MCP
После запуска можно проверить, что MCP tools реально доступны:
curl -s http://127.0.0.1:8788/mcp \
-H 'Authorization: Bearer change_me' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
В ответе должны быть tools:
notes_save
notes_read
notes_list
Запуск stdio mode
Для локальных MCP-клиентов, которым нужен stdio transport:
npm run build
npm run start:stdio
В stdio mode HTTP endpoint и bearer token не используются. Клиент запускает процесс сервера сам и общается с ним через stdin/stdout.
Пример команды для MCP-клиента:
{
"command": "node",
"args": ["/absolute/path/to/mcp_notes_server/dist/index.js"]
}
Перед подключением stdio mode один раз собери проект через npm run build.
Tools
Сервер регистрирует три tools:
notes_save- сохраняет Markdown-заметку и возвращает metadata плюс embedded MCPresourceс содержимым файла.notes_read- читает заметку поidилиfileName.notes_list- возвращает список последних заметок.
notes_save
Пример аргументов:
{
"title": "Отчет по задачам авторизации",
"content": "Markdown content...",
"tags": ["youtrack", "auth", "report"]
}
Файл сохраняется в NOTES_DATA_DIR с безопасным именем вроде:
2026-06-28-otchet-po-zadacham-avtorizacii.md
Если такой файл уже существует, сервер добавит suffix.
notes_read
{
"id": "2026-06-28-otchet-po-zadacham-avtorizacii"
}
Или:
{
"fileName": "2026-06-28-otchet-po-zadacham-avtorizacii.md"
}
notes_list
{
"limit": 20
}
Формат Markdown
Каждая заметка сохраняется человекочитаемо:
---
title: Отчет по задачам авторизации
createdAt: 2026-06-28T12:00:00.000Z
tags:
- youtrack
- auth
- report
---
# Отчет по задачам авторизации
Markdown content...
Подключение к bridge
Пример MCP_SERVERS_JSON для bridge:
{
"servers": [
{
"id": "notes",
"name": "Notes",
"url": "http://127.0.0.1:8788/mcp",
"authTokenEnv": "NOTES_MCP_TOKEN",
"enabled": true
}
]
}
В .env.local bridge укажи:
NOTES_MCP_TOKEN=change_me
MCP_SERVERS_JSON={"servers":[{"id":"notes","name":"Notes","url":"http://127.0.0.1:8788/mcp","authTokenEnv":"NOTES_MCP_TOKEN","enabled":true}]}
Если bridge уже подключает YouTrack MCP, добавь Notes вторым элементом массива servers.
Demo prompt
Проверочный prompt для агента:
Найди задачи по авторизации во внешней системе, составь короткий отчет с рисками и сохрани его в заметки. Потом скажи, как называется сохраненная заметка.
Ожидаемый flow:
1. агент вызывает tool из YouTrack MCP;
2. агент анализирует результат;
3. агент вызывает notes_save из Notes MCP;
4. агент отвечает пользователю, что отчет сохранен.
Пользователь при этом не должен знать названия tools.
Безопасность
- HTTP mode требует
MCP_SERVER_TOKENи проверяетAuthorization: Bearer <MCP_SERVER_TOKEN>. - Токены не логируются.
idиfileNameнормализуются и не позволяют path traversal.- Чтение и запись ограничены
NOTES_DATA_DIR. - Максимальный размер содержимого заметки - 100 KB.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.