Skip to main content
Glama
kuraki5336

Lalaleap MCP Server

by kuraki5336

Lalaleap MCP Server

Через MCP (Model Context Protocol) AI-инструменты могут напрямую взаимодействовать с системой управления проектами Lalaleap.

После подключения вы сможете с помощью естественного языка попросить AI создать требования, найти ошибки, управлять задачами — не нужно переключаться в браузер.


Что это такое?

你(在 Claude Code / Cursor 裡打字)
  ↓  "幫我在彰基專案建一筆需求:病歷查詢 API"
Claude / Cursor(透過 MCP Protocol 呼叫 tool)
  ↓  callTool("create_requirement", { pno, title, priority })
Lalaleap MCP Server(本專案,TypeScript + stdio)
  ↓  POST /require/add → POST /require/edit
Lalaleap 後端 API(Java)
  ↓
回傳結果 → AI 告訴你「需求已建立,編號 1000160」

Одной фразой: это переводной слой между AI и Lalaleap.


Related MCP server: litejira-mcp

Быстрый старт (3 минуты)

Шаг 1: Настройте свой AI-инструмент

Не нужно вручную клонировать репозиторий — просто укажите GitHub repo в настройках MCP, npx автоматически загрузит и соберёт.

Claude Code — отредактируйте ~/.claude/settings.json:

{
  "mcpServers": {
    "lalaleap": {
      "command": "npx",
      "args": ["-y", "github:kuraki5336/tpi_lalaleap_mcp"],
      "env": {
        "LALALEAP_API_URL": "https://your-domain.com/ap2/lalaleap",
        "LALALEAP_EMAIL": "你的email@gmail.com",
        "LALALEAP_PASSWORD": "你的密碼",
        "LALALEAP_UNSAFE_SSL": "1"
      }
    }
  }
}

Cursor — в Settings → MCP добавьте сервер с теми же полями.

Предварительное условие: у пользователя должен быть доступ к GitHub repo (для private repo требуется SSH key или personal access token).

LALALEAP_UNSAFE_SSL=1 нужен, потому что в dev-среде истёк SSL-сертификат; в production не требуется.

Альтернатива: локальная установка

Если не хотите каждый раз загружать через npx, можно клонировать:

git clone https://github.com/kuraki5336/tpi_lalaleap_mcp.git
cd tpi_lalaleap_mcp && npm install

Затем в настройках MCP укажите локальный путь:

{
  "mcpServers": {
    "lalaleap": {
      "command": "node",
      "args": ["/你的路徑/tpi_lalaleap_mcp/dist/index.js"],
      "env": { ... }
    }
  }
}

Шаг 2: Начинайте использовать

Перезапустите ваш AI-инструмент и просто общайтесь.


Способы аутентификации

Поддерживаются два, на выбор:

Способ

Переменная окружения

Описание

Вход по учётным данным

LALALEAP_EMAIL + LALALEAP_PASSWORD

Программа обрабатывает SHA256 пароля, вы указываете открытый текст

API Token

LALALEAP_API_TOKEN

Будет доступен после поддержки бэкендом, приоритет выше учётных данных

Все переменные окружения:

Переменная

Обязательная

Описание

LALALEAP_API_URL

Да

Базовый URL API

LALALEAP_EMAIL

Один из

Email для входа

LALALEAP_PASSWORD

Один из

Пароль для входа

LALALEAP_API_TOKEN

Один из

API Token (приоритет выше учётных данных)

LALALEAP_UNSAFE_SSL

Нет

1 = пропустить проверку SSL

LALALEAP_READONLY

Нет

1 = режим только для чтения, запрещены все операции записи

LALALEAP_ALLOWED_PROJECTS

Нет

Белый список проектов (pno через запятую), только для них разрешена запись

LALALEAP_WRITE_RATE_LIMIT

Нет

Максимальное количество записей в минуту (по умолчанию 10)


Список доступных Tools

Всего 15 инструментов, AI автоматически выбирает, какой вызвать на основе вашей команды.

Проекты

Tool

Что делает

Обязательные параметры

Необязательные параметры

list_projects

Список всех проектов

get_project_detail

Детали проекта

pno

create_project

Создать проект

name

type (0 публичный / 1 приватный)

Требования

Tool

Что делает

Обязательные параметры

Необязательные параметры

create_requirement

Создать требование

pno, title

describe, priority(высокий/средний/низкий), start_date, end_date

list_requirements

Список требований

pno

page, limit, keyword

get_requirement_detail

Детали требования

pno, rno

update_requirement

Изменить требование

pno, rno

title, status, priority, describe, start_date, end_date

Ошибки

Tool

Что делает

Обязательные параметры

Необязательные параметры

create_bug

Создать ошибку

pno, title

describe, priority(высокий/средний/низкий), serious

list_bugs

Список ошибок

pno

page, limit

update_bug

Изменить ошибку

pno, rno

title, status, priority, serious, describe

Задачи / Спринты / Прочее

Tool

Что делает

Обязательные параметры

Необязательные параметры

create_todo

Создать задачу

pno, title

content, priority(high/medium/low), due_date, lane_no

list_todos

Просмотр доски задач

pno

list_sprints

Список спринтов

pno

list_project_members

Участники проекта

pno

search_tags

Поиск тегов

pno

keyword


MCP Resources

Помимо tools (их нужно вызывать активно), есть resources (AI может читать их как контекст):

URI

Содержимое

lalaleap://projects

Список проектов

lalaleap://project/{pno}/requirements

Требования проекта

lalaleap://project/{pno}/bugs

Ошибки проекта

lalaleap://project/{pno}/sprints

Спринты проекта

lalaleap://project/{pno}/members

Участники проекта


Примеры диалогов

你:幫我看一下有哪些專案
AI:→ list_projects
    你有 12 個專案:彰基_測試、ProjectC、...

你:在彰基_測試建一筆需求「病歷查詢 API」,優先度高
AI:→ list_projects(找到 pno)
    → create_requirement(pno, title="病歷查詢 API", priority="高")
    需求已建立,編號 1000160

你:列出這個專案所有需求
AI:→ list_requirements(pno)
    共 5 筆需求:
    1. 病歷查詢 API(高)- 規劃中
    2. 使用者登入(中)- 進行中
    ...

你:建一個 bug「登入頁按鈕在 Safari 沒反應」
AI:→ create_bug(pno, title="登入頁按鈕在 Safari 沒反應")
    缺陷已建立,編號 2000005

你:幫我加一個待辦「寫 API 文件」,截止下週五
AI:→ create_todo(pno, title="寫 API 文件", due_date="2026-03-28")
    待辦已建立

Архитектура и обзор исходного кода

tpi_tpad_mcp/
├── src/
│   ├── index.ts            # 入口:啟動 MCP Server、註冊 tools & resources
│   ├── config.ts           # 讀取環境變數
│   ├── api-client.ts       # axios HTTP client,處理登入/token/重試
│   ├── resources.ts        # 5 個 MCP Resources 定義
│   ├── test.ts             # API 整合測試(14 個端點)
│   ├── test-mcp.ts         # MCP Protocol E2E 測試(50 個案例)
│   └── tools/
│       ├── projects.ts     # list_projects, get_project_detail, create_project
│       ├── requirements.ts # create/list/get/update requirement
│       ├── bugs.ts         # create_bug, list_bugs
│       ├── todos.ts        # create_todo, list_todos
│       ├── sprints.ts      # list_sprints
│       ├── tags.ts         # search_tags
│       └── members.ts      # list_project_members
├── docs/
│   └── test-report.md      # QA 測試報告
├── package.json
└── tsconfig.json

Ключевые решения в дизайне

  • Автоматическая аутентификация: автоматический вход при запуске, автоматическое обновление токена при 401, повторный вход при неудаче

  • Двухшаговое создание: при создании требования/ошибки сначала POST /add для получения номера, затем POST /edit для заполнения полей (как в клиентской части)

  • Никакие ошибки не приводят к падению: каждый tool обёрнут в try-catch, возвращается дружественное сообщение на китайском

  • Защита записи: механизм WriteGuard защищает все операции записи (подробнее ниже)


Защита безопасности (WriteGuard)

AI может неправильно понять команду и массово записать мусорные данные. Все операции записи (create/update) защищены тремя уровнями:

1. Режим только для чтения

Полностью запрещает запись, AI может только запрашивать, но не создавать/изменять:

{
  "env": {
    "LALALEAP_READONLY": "1"  // 所有 create/update tool 會被直接阻擋
  }
}

Сценарии использования: Демо, когда новичок не уверен в поведении AI, или только для запросов.

2. Белый список проектов

Ограничивает запись AI только определёнными проектами, предотвращая работу с неправильными проектами:

{
  "env": {
    // 只允許對這兩個專案做寫入操作,其他專案的 create/update 會被阻擋
    "LALALEAP_ALLOWED_PROJECTS": "be3fd182-3696-41a6-bce8-7f2e9d88b648,c53f210f-xxxx"
  }
}

Сценарии использования: В production открыт только тестовый проект, члены команды работают только со своими проектами.

3. Ограничение частоты записи

Ограничивает максимальное количество записей в минуту, предотвращая массовое создание элементов за короткое время:

{
  "env": {
    "LALALEAP_WRITE_RATE_LIMIT": "5"  // 每分鐘最多 5 次寫入(預設 10)
  }
}

При превышении лимита AI получает чёткое сообщение об ошибке:

[頻率限制] 過去一分鐘已執行 5 次寫入操作(上限 5 次)。請稍後再試。

Сценарии использования: Предотвращение массового создания в цикле, неправильного понимания команд типа "создай 100 требований".

Рекомендуемые комбинации настроек

Сценарий

Настройка

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

Без ограничений, или WRITE_RATE_LIMIT=20

Ежедневное использование

ALLOWED_PROJECTS=ваш_pno_проекта + WRITE_RATE_LIMIT=10

Демонстрация

READONLY=1

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

ALLOWED_PROJECTS=проекты_команды + WRITE_RATE_LIMIT=5


Разработка

# 開發模式(tsx 直接跑,不需編譯)
npm run dev

# 編譯
npm run build

# API 整合測試(直接打 API,14 個端點)
npm test

# MCP Protocol E2E 測試(透過 stdio 模擬真實 MCP 連線,50 個案例)
LALALEAP_UNSAFE_SSL=1 npx tsx src/test-mcp.ts

Добавление нового Tool

  1. Добавьте или измените соответствующий файл в src/tools/

  2. Зарегистрируйте с помощью server.tool(name, description, zodSchema, handler)

  3. Если это новый файл, импортируйте и вызовите функцию регистрации в src/index.ts

  4. Запустите тесты для проверки

// 範例:新增一個 tool
server.tool(
  'my_new_tool',
  '這個 tool 做什麼',
  {
    pno: z.string().describe('專案編號'),
    someParam: z.string().optional().describe('說明'),
  },
  async ({ pno, someParam }) => {
    try {
      const resp = await api.post('/some/endpoint', { pno, someParam });
      return {
        content: [{ type: 'text', text: JSON.stringify(resp.data, null, 2) }],
      };
    } catch (err) {
      return {
        content: [{ type: 'text', text: formatError(err) }],
        isError: true,
      };
    }
  }
);

Troubleshooting

Проблема

Решение

certificate has expired

Установите LALALEAP_UNSAFE_SSL=1

Need to change password (601)

Обрабатывается автоматически (сервер повторяет с keepCipher='Y')

LALALEAP_API_URL переменная окружения не задана

Убедитесь, что блок env в настройках MCP клиента содержит её

Не удаётся подключиться к серверу

Убедитесь, что npm run build выполнен, и dist/index.js существует

Tool не появляется

Перезапустите AI-инструмент, проверьте правильность settings.json


Технологический стек

Элемент

Версия

Node.js

18+

TypeScript

5.9

MCP SDK

@modelcontextprotocol/sdk 1.27

HTTP Client

axios 1.13

Schema Validation

zod 4.3

Транспорт

stdio (стандартный ввод/вывод)


Покрытие тестами

Категория

Количество

Проходной процент

MCP Protocol E2E (включая tools + resources + граничные случаи)

50

100%

Интеграционные тесты API

14

100%

Проверка типов TypeScript

Ноль ошибок

Полный отчёт о тестах см. в docs/test-report.md.

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A client-side MCP server that enables AI assistants to interact with the LiteJira issue tracking system for creating, searching, and managing issues via natural language.
    361
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that connects AI assistants to TickTick, enabling project and task management through natural language, including reading projects, finding tasks, creating tasks, and completing work.
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.

View all MCP Connectors

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/kuraki5336/tpi_lalaleap_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server