MCP-коннектор
Обзор
Flashcards предоставляет удалённый MCP-сервер (Model Context Protocol), чтобы MCP-клиенты и агенты ИИ могли читать ваши карточки к повторению, а также создавать и редактировать карточки и колоды за вас.
Агенты могут подключаться двумя способами: через этот MCP-сервер (лучший вариант для MCP-клиентов вроде Claude или Cursor) или через URL discovery для Agents API для CLI-агентов. Оба способа дают доступ к одному и тому же набору данных на уровне пользователя; эта страница посвящена MCP-серверу.
Подключайтесь по адресу:
https://mcp.flashcards-open-source-app.com/mcp
Транспорт — Streamable HTTP, и сервер предоставляет три инструмента поверх небольшого, намеренно ограниченного SQL-интерфейса. Это тот же набор данных на уровне пользователя, что и в справочнике API; MCP-сервер — это удобный для коннекторов способ получить к нему доступ из клиентов, которые поддерживают MCP.
Как добавить его в вашем клиенте
Большинство клиентов добавляют удалённый MCP-сервер как пользовательский коннектор:
- Откройте в вашем клиенте настройки коннекторов или MCP-серверов.
- Добавьте пользовательский коннектор и вставьте URL сервера
https://mcp.flashcards-open-source-app.com/mcp. - Для интерактивных клиентов авторизуйтесь в браузере, когда появится запрос. Сервер использует OAuth 2.1 с Dynamic Client Registration, поэтому нет client secret, который нужно было бы вставлять, и нет приложения, которое нужно регистрировать заранее.
- Для headless- или CLI-использования вместо браузерного потока задайте заголовок
Authorization: Bearer fca_…с вашим API-ключом агента.
После авторизации один раз вызовите list_workspaces, чтобы выбрать workspace, а
затем используйте sql_query для чтения и sql_execute для записи.
Инструменты
Сервер предоставляет три инструмента. Чтение и запись разделены намеренно, чтобы один инструмент никогда не смешивал безопасные и разрушительные операции.
sql_query— доступ только для чтения к вашим карточкам и колодам (SHOW TABLES,DESCRIBE,SHOW COLUMNS,SELECT).sql_execute— доступ на запись к вашим карточкам и колодам (INSERT,UPDATE,DELETE) в виде атомарного пакета.list_workspaces— список доступных вам workspace, для каждого с егоworkspaceId, именем, числом активных карточек, временем последней активности и признаком того, является ли он вашим текущим выбранным workspace по умолчанию. Используйте возвращённыйworkspaceIdв качестве аргументаworkspaceIdдляsql_queryиsql_execute.
SQL-интерфейс — это намеренно ограниченный диалект, а не полноценный PostgreSQL.
Выражения могут обращаться только к ресурсам workspace, cards, decks и
review_events, каждое выражение ограничено вашим собственным workspace, а чтение и
запись ограничены 100 строками на выражение.
Контракт карточки
Каждая карточка следует одному контракту, и инструменты опираются на него:
front_text— это только вопрос или подсказка к повторению и никогда не содержит ответа.back_textсодержит ответ, при необходимости с конкретным примером.
Агенты, которые генерируют карточки через sql_execute, следуют этому контракту,
поэтому создаваемые ими карточки сразу готовы к повторению с интервальными повторениями.
Аутентификация
Два пути авторизации ведут к одному и тому же набору данных на уровне пользователя.
OAuth 2.1 (интерактивные клиенты-коннекторы)
Сервер реализует поток authorization-code с PKCE и Dynamic Client Registration. Добавьте URL MCP как пользовательский коннектор и авторизуйтесь в браузере; client secret заранее не передаётся. Discovery выполняется стандартно:
- Метаданные защищённого ресурса (protected-resource):
https://mcp.flashcards-open-source-app.com/.well-known/oauth-protected-resource - Метаданные сервера авторизации (authorization-server):
https://auth.flashcards-open-source-app.com/.well-known/oauth-authorization-server
API-ключ (headless и CLI)
Получите долгоживущий API-ключ агента fca_ через поток входа по одноразовому коду
из письма, описанный в справочнике API, а затем отправляйте его как Bearer-токен:
Authorization: Bearer fca_ABCDEFGH_0123456789ABCDEFGHJKMNPQRS
Это тот же ключ, который принимает REST-интерфейс для агентов, и ему не нужны ни браузер, ни round-trip через OAuth.
Каноническое машиночитаемое описание обоих путей — это полезная нагрузка discovery
по адресу https://api.flashcards-open-source-app.com/v1/ (с зеркалом на /v1/agent).
Безопасность и область действия
SQL-инструменты безопасно одобрять, потому что этот интерфейс — изолированный диалект с проверкой на уровне парсера, а не произвольный доступ к базе данных:
- Закрытый список разрешённых выражений:
sql_queryпринимает толькоSHOW TABLES,DESCRIBE,SHOW COLUMNSиSELECT;sql_executeпринимает толькоINSERT,UPDATEиDELETE. Всё остальное отклоняется на этапе разбора. - Ограниченные ресурсы: выражения могут обращаться только к
workspace,cards,decksиreview_events. - Ограничение по workspace: каждое выражение ограничено выбранным вами workspace, без доступа к данным других арендаторов.
- Лимиты: до
100строк на выражение, до50выражений в пакете и ограничение результата примерно в12kтокенов. Пакеты изменений применяются атомарно. - Разделение чтения и записи:
sql_queryиlist_workspacesработают только на чтение (readOnlyHint), аsql_executeвыполняет запись (destructiveHint).
Весь стек — приложение, бэкенд и инфраструктура — имеет открытый исходный код и может быть развёрнут самостоятельно, так что вы можете запустить тот же коннектор против собственного развёртывания.