SurfTracker MCP Server

SurfTracker MCP Server

MCP server that proxies the SurfTracker API to let AI clients list, create, and manage tasks, releases, and notifications, using the user's SurfTracker API key for authorization.

Category
Visit Server

README

SurfTracker MCP Server

MCP-сервер (Streamable HTTP) для доступа ИИ-клиентов к проектам и задачам SurfTracker. В отличие от FileManagerMCP/IBP_mcp, у этого сервера нет своего хранилища API-ключей: он проксирует SurfTracker API-ключ (User.apiKey), переданный MCP-клиентом, в каждый вызов POST ${SURFTRACKER_BASE_URL}/api/1/external/* — всю авторизацию и контроль доступа (какие проекты/задачи видны) выполняет сам SurfTracker.

Инструменты

Инструмент Endpoint SurfTracker Описание
list_projects listProjects Проекты, доступные владельцу API-ключа: колонки статусов, папки задач, релизы
list_tasks listTasks Задачи проекта с пагинацией и фильтрами (папка, включать завершённые)
get_task getTask Полная карточка задачи: описание, статусы/исполнители, подзадачи, чат
search_tasks searchTasks Полнотекстовый поиск задач по id/заголовку/описанию/чату
create_task createTask Создать задачу в проекте
add_subscriber addSubscriber Добавить подписчика к задаче
add_subtask addSubtask Связать задачи отношением родитель-подзадача
assign_executor assignExecutor Назначить исполнителя задаче/действию
remove_executor removeExecutor Снять исполнителя с задачи/действия
send_notification sendNotification Отправить пользователю уведомление о задаче
set_status setStatus Изменить статус задачи/действия
create_md_file createMdFile Создать .md файл и прикрепить к задаче
delete_task deleteTask Мягко удалить задачу
delete_task_notifications deleteTaskNotifications Удалить уведомления, связанные с задачей
list_releases listReleases Релизы проекта вместе с их разделами
list_release_sections listReleaseSections Разделы конкретного релиза
list_release_tasks listReleaseTasks Задачи (действия), привязанные к релизу/разделу
get_task_release_note getTaskReleaseNote Релизный текст действия задачи
set_task_release_note setTaskReleaseNote Задать релизный текст действия задачи

Полное описание параметров каждого метода — в SurfTracker/docs/external-api.md (read-методы задач — разделы 11-14, релизы — 15-19, остальные — 1-10).

Требования

  • Node.js 18+ (используется встроенный fetch)
  • Работающий инстанс SurfTracker, доступный по сети из места запуска сервиса
  • SurfTracker API-ключ (User.apiKey) пользователя, от имени которого работает ИИ

Установка

npm install
cp .env.example .env   # указать PORT и SURFTRACKER_BASE_URL

Переменные окружения (.env)

Переменная По умолчанию Назначение
PORT 3300 Порт MCP-сервера
SURFTRACKER_BASE_URL — (обязательна) Базовый URL SurfTracker, без завершающего /

Запуск

npm start        # прод
npm run dev      # с автоперезапуском (--watch)
  • MCP endpoint: POST http://<host>:<PORT>/mcp (требует SurfTracker API-ключ)
  • Health check: GET http://<host>:<PORT>/health — доступность SURFTRACKER_BASE_URL (не проверяет валидность ключа — ключ есть только у клиента)

Подключение MCP-клиента

{
  "mcpServers": {
    "surftracker": {
      "url": "http://<host>:<PORT>/mcp",
      "headers": { "Authorization": "Bearer <SurfTracker API key>" }
    }
  }
}

Ключ можно передавать и в заголовке X-API-Key. Права ИИ-клиента полностью совпадают с правами пользователя, которому принадлежит ключ (те же проекты и задачи, что видны ему в SurfTracker).

Модель безопасности

  1. Ключ не хранится. Сервис не ведёт собственный список ключей/проектов — каждый вызов инструмента дословно пересылает заголовок Authorization в SurfTracker. Скомпрометировать этот сервис отдельно от SurfTracker невозможно: он не видит ничего, что не отдаёт сам SurfTracker по этому ключу.
  2. Авторизация и видимость данных — на стороне SurfTracker. ApiInstaller (authenticateByApiKey, Project.hasAccessToTask) решает, какие проекты и задачи доступны конкретному ключу; здесь эта логика не дублируется.
  3. Ошибки SurfTracker (success: false) превращаются в isError MCP-результат с тем же сообщением (Unauthorized: Invalid API key, No access to project, ...), без утечки внутренних деталей запроса.
  4. Rate limiting на /mcp: до 6000 запросов в час на процесс (MCP-сессии дёргают по одному запросу на каждый вызов инструмента).

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured