Skip to main content
Glama
hspanteon
by hspanteon

Panteon Timeline MCP Server 🚀

MCP-сервер (Model Context Protocol), созданный на FastMCP, который позволяет AI-ассистентам (Antigravity, Claude Desktop, Cursor и др.) получать данные о задачах и историю переписки в реальном времени напрямую из Panteon Timeline (https://timeline.panteon.no).


✨ Возможности

  • Извлечение ID задачи: Автоматически разбирает URL-форматы, такие как https://timeline.panteon.no/tasks#/list/15033/edit/5461, или принимает прямые ID задач (5461).

  • Двухэтапное разрешение API: Повторяет логику браузерного расширения, разрешая внешний ID задачи (5461) во внутренний task_id Panteon через API 1, а затем получая полную временную шкалу переписки через API 2.

  • Форматирование, оптимизированное для ИИ: Предоставляет структурированный XML/Markdown-контекст (<task_title>, <task_description>, <conversation_history>) для анализа, обобщения и составления ответов с помощью ИИ.

  • Гибкая аутентификация: Поддерживает JWT Bearer-токены или Cookie-заголовки через конфигурацию в файле .env или параметры при вызове инструмента.


Related MCP server: ProofHub MCP Server

🛠️ Установка и настройка

1. Установка зависимостей

Убедитесь, что у вас установлен Python 3.10+, затем создайте или повторно используйте виртуальное окружение проекта и установите в него зависимости:

cd timeline-mcp
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt

2. Настройка аутентификации

Для получения защищенных данных с timeline.panteon.no MCP-серверу требуется токен аутентификации из вашей авторизованной сессии браузера.

  1. Скопируйте .env.example в .env:

    cp .env.example .env
  2. Откройте Google Chrome и войдите в https://timeline.panteon.no.

  3. Откройте Chrome DevTools (F12 или Ctrl+Shift+I) -> перейдите на вкладку Network.

  4. Обновите страницу задачи или выполните любое действие.

  5. Нажмите на любой запрос, начинающийся с api/ (например, taskbyissue/... или timeline).

  6. В разделе Request Headers скопируйте значение Authorization (без префикса Bearer ) или исходную строку заголовка Cookie.

  7. Вставьте его в ваш файл .env:

    PANTEON_BEARER_TOKEN=eyJ...
    # OR
    PANTEON_COOKIE=...

🤖 Настройка MCP-клиентов

Для Claude Desktop / Antigravity / Cursor

Добавьте следующую конфигурацию в файл конфигурации вашего MCP-сервера (например, claude_desktop_config.json):

{
  "mcpServers": {
    "timeline-mcp": {
      "command": "/home/harpalsinh.solanki@hs.local/projects/panteon/timeline-mcp/.venv/bin/python",
      "args": [
        "/home/harpalsinh.solanki@hs.local/projects/panteon/timeline-mcp/server.py"
      ],
      "env": {
        "PANTEON_BEARER_TOKEN": "your_jwt_token_here"
      }
    }
  }
}

Для Codex

Codex читает MCP-серверы из config.toml. Добавьте это в ~/.codex/config.toml для глобальной настройки или в .codex/config.toml внутри этого репозитория для настройки в рамках проекта:

[mcp_servers.timeline_mcp]
command = "/home/harpalsinh.solanki@hs.local/projects/panteon/timeline-mcp/.venv/bin/python"
args = ["/home/harpalsinh.solanki@hs.local/projects/panteon/timeline-mcp/server.py"]
cwd = "/home/harpalsinh.solanki@hs.local/projects/panteon/timeline-mcp"
startup_timeout_sec = 20
tool_timeout_sec = 120

Если cwd указывает на этот репозиторий, python-dotenv автоматически загружает .env. Если вы предпочитаете передавать учетные данные из оболочки, добавьте:

env_vars = ["PANTEON_BEARER_TOKEN", "PANTEON_COOKIE", "PANTEON_TIMELINE_DIR"]

После сохранения конфигурации перезапустите Codex и выполните /mcp в TUI Codex, чтобы убедиться, что timeline_mcp активен.


🧰 Доступные инструменты

get_task_conversation

Получает задачу полностью — тело описания и всю переписку в комментариях — включая каждое изображение, встроенное где-либо, и записывает её в markdown-файл.

  • Аргументы:

    • issue_identifier (str) — например, "https://timeline.panteon.no/tasks#/list/15033/edit/5461" или "5461". Должен быть простым числовым ID или URL, содержащим /edit/<id>.

    • bearer_token / cookie (str, необязательно) — переопределяют учетные данные из .env при каждом вызове.

    • inline (bool, по умолчанию false) — если true, полный markdown задачи добавляется к возвращаемому значению в дополнение к сохранению. Используйте это для клиентов, которые не могут читать локальный путь файловой системы.

  • Побочный эффект: записывает timeline/<issue_id>/task.md (заголовок, метаданные, описание, комментарии). Сохраненный файл также доступен как MCP ресурс по адресу timeline://<issue_id>/task.md, поэтому клиенты могут читать полное содержимое через MCP после получения.

  • Пустые задачи: когда и описание, и комментарии пусты, инструмент запрашивает необязательный контекст от пользователя, если MCP-клиент поддерживает уточнение. Принятый ввод сохраняется в разделе ## User-Provided Context; неподдерживающие клиенты получают обычный вывод-заглушку.

  • Возвращает короткую читаемую строку-сводку с ID задачи, заголовком, статусом и путем к сохраненному файлу — например:

    Issue #4117 — Label print
    Status:     open
    Saved to:   /abs/path/timeline/4117/task.md

    Полное тело задачи, вся переписка в комментариях и все URL изображений записываются в сохраненный файл. Прочитайте этот файл, чтобы получить полное содержимое.

URL изображений, встроенных в комментарии (markdown ![](…) или HTML <img>), преобразуются в абсолютные URL https://timeline.panteon.no/.... Ссылки на вложения, не являющиеся изображениями (например, .csv), исключаются.

Расположение вывода

Файл записывается в <base>/timeline/<issue_id>/task.md, где <base> — это:

  1. Переменная окружения PANTEON_TIMELINE_DIR, если она задана (этот MCP настроен так, что она указывает на корень проекта duell-admin); в противном случае

  2. текущая рабочая директория.


💻 Использование из командной строки

Та же логика получения доступна из оболочки через fetch_task.py (учетные данные берутся из .env):

# By numeric ID or full URL
.venv/bin/python fetch_task.py 5461
.venv/bin/python fetch_task.py "https://timeline.panteon.no/tasks#/list/15033/edit/5461"

# Also print the rendered markdown to stdout
.venv/bin/python fetch_task.py 5461 --print

# Write under a specific project root instead of PANTEON_TIMELINE_DIR / cwd
.venv/bin/python fetch_task.py 5461 --base-dir /path/to/project

🧪 Разработка и тестирование

# Install dev dependencies (adds pytest)
.venv/bin/python -m pip install -r requirements-dev.txt

# Run the unit tests — no network or credentials required
.venv/bin/python -m pytest

Тесты находятся в tests/ и покрывают чистые помощники по разбору/рендерингу, а также обработку ошибок аутентификации (через имитированную HTTP-сессию).

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers