maimemo-mcp
maimemo-mcp
Персональный MCP-сервер с доступом только для чтения к учебным данным Maimemo.
Функции
Транспорт
stdioдля локальных MCP-клиентов.Потоковый HTTP-транспорт по адресу
/mcp.Четыре инструмента с доступом только для чтения:
maimemo_get_today_progressmaimemo_list_today_wordsmaimemo_get_due_wordsmaimemo_find_vocabularymaimemo_list_notepadsmaimemo_get_notepad
Bearer-аутентификация для запросов к OpenAPI Maimemo.
Локальное ограничение частоты запросов (rolling-window) согласно документации Maimemo:
20/10с,40/60си2000/5ч.Защита хоста, источника (origin) и опциональный токен доступа для HTTP-транспорта.
Установка
npm install
npm run buildИспользуйте Node.js версии 20 или новее.
Конфигурация
Обязательно:
export MAIMEMO_TOKEN="your-maimemo-openapi-token"Опционально:
export MAIMEMO_BASE_URL="https://open.maimemo.com/open"
export MAIMEMO_HTTP_HOST="127.0.0.1"
export MAIMEMO_HTTP_PORT="3333"Когда MAIMEMO_HTTP_HOST не является 127.0.0.1, localhost или ::1,
требуется MCP_SERVER_AUTH_TOKEN:
export MCP_SERVER_AUTH_TOKEN="your-local-mcp-http-token"Не добавляйте реальные токены в репозиторий. Файлы .env игнорируются по умолчанию.
Запуск через Stdio
MAIMEMO_TOKEN="your-token" npx maimemo-mcp --transport=stdioДля локальной копии:
MAIMEMO_TOKEN="your-token" node dist/cli.js --transport=stdioПример команды для MCP-клиента:
{
"mcpServers": {
"maimemo": {
"command": "node",
"args": ["/absolute/path/to/momo-skills/dist/cli.js", "--transport=stdio"],
"env": {
"MAIMEMO_TOKEN": "your-token"
}
}
}
}Запуск через потоковый HTTP
MAIMEMO_TOKEN="your-token" node dist/cli.js --transport=httpКонечная точка по умолчанию:
http://127.0.0.1:3333/mcpДля привязки к внешнему адресу:
MAIMEMO_TOKEN="your-token" \
MAIMEMO_HTTP_HOST="0.0.0.0" \
MCP_SERVER_AUTH_TOKEN="your-local-mcp-http-token" \
node dist/cli.js --transport=httpКлиенты должны отправлять:
Authorization: Bearer your-local-mcp-http-tokenВходные данные инструментов
maimemo_get_today_progress не требует входных данных.
maimemo_list_today_words:
{
"status": "all",
"freshness": "all",
"limit": 50,
"spellings": ["hello", "world"]
}status может принимать значения all, unfinished или finished.
freshness может принимать значения all, new или review.
limit должен быть от 1 до 1000.
maimemo_get_due_words:
{
"startDate": "2026-04-18",
"endDate": "2026-04-20",
"spellings": ["hello"],
"limit": 50,
"countOnly": false
}Даты принимаются в формате YYYY-MM-DD или ISO. Перед вызовом Maimemo они нормализуются к часовому поясу Asia/Shanghai.
maimemo_find_vocabulary:
{
"spellings": ["hello"]
}или:
{
"ids": ["vocabulary-id"]
}Укажите только один из параметров: spellings или ids.
maimemo_list_notepads:
{
"limit": 20,
"offset": 0,
"ids": ["notepad-id"]
}limit должен быть от 1 до 100.
maimemo_get_notepad:
{
"id": "notepad-id"
}Возвращает полное содержимое блокнота и разобранный список слов.
Разработка
npm test
npm run typecheck
npm run buildResources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/xiandan-erizo/maimemo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server