Lalaleap MCP Server
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분)
Step 1: AI 도구 설정
수동으로 clone할 필요 없이, MCP 설정에서 GitHub repo를 가리키면 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에서 새 server를 추가하고 위와 동일한 필드를 입력합니다.
전제 조건: 사용자의 머신이 GitHub repo에 접근 권한이 있어야 합니다 (private repo는 SSH key 또는 personal access token 필요).
LALALEAP_UNSAFE_SSL=1은 dev 환경에서 SSL 인증서가 만료되었기 때문이며, 프로덕션 환경에서는 필요하지 않습니다.
대안: 로컬 설치
매번 npx로 가져오고 싶지 않다면, clone할 수도 있습니다:
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": { ... }
}
}
}Step 2: 사용 시작
AI 도구를 재시작하고 바로 대화를 시작하면 됩니다.
인증 방식
두 가지 중 하나를 지원합니다:
방식 | 환경 변수 | 설명 |
계정 로그인 |
| 비밀번호 SHA256 암호화는 프로그램이 처리하므로 평문 입력 |
API 토큰 |
| 추후 백엔드 지원 시 사용 가능, 계정 로그인보다 우선 |
모든 환경 변수:
변수 | 필수 | 설명 |
| 예 | API 기본 URL |
| 택일 | 로그인 이메일 |
| 택일 | 로그인 비밀번호 |
| 택일 | API 토큰 (계정 로그인보다 우선) |
| 아니오 |
|
| 아니오 |
|
| 아니오 | 프로젝트 화이트리스트 (쉼표로 구분된 pno), 해당 프로젝트에만 쓰기 허용 |
| 아니오 | 분당 최대 쓰기 횟수 (기본 10) |
사용 가능한 도구 목록
총 15개의 도구가 있으며, AI가 사용자의 명령에 따라 자동으로 선택하여 호출합니다.
프로젝트
도구 | 기능 | 필수 매개변수 | 선택적 매개변수 |
| 모든 프로젝트 나열 | — | — |
| 프로젝트 상세 보기 |
| — |
| 새 프로젝트 생성 |
|
|
요구사항
도구 | 기능 | 필수 매개변수 | 선택적 매개변수 |
| 요구사항 생성 |
|
|
| 요구사항 목록 조회 |
|
|
| 요구사항 상세 보기 |
| — |
| 요구사항 수정 |
|
|
버그
도구 | 기능 | 필수 매개변수 | 선택적 매개변수 |
| 버그 생성 |
|
|
| 버그 목록 조회 |
|
|
| 버그 수정 |
|
|
할 일 / 스프린트 / 기타
도구 | 기능 | 필수 매개변수 | 선택적 매개변수 |
| 할 일 생성 |
|
|
| 할 일 칸반 보기 |
| — |
| 스프린트 목록 조회 |
| — |
| 프로젝트 멤버 조회 |
| — |
| 태그 검색 |
|
|
MCP 리소스
도구 (수동 호출 필요) 외에도 리소스 (AI가 컨텍스트로 읽을 수 있음)가 있습니다:
URI | 내용 |
| 프로젝트 목록 |
| 특정 프로젝트의 요구사항 |
| 특정 프로젝트의 버그 |
| 특정 프로젝트의 스프린트 |
| 특정 프로젝트의 멤버 |
실제 대화 예시
你:幫我看一下有哪些專案
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 시 자동으로 토큰 갱신, 실패 시 재로그인
2단계 생성: 요구사항/버그 생성 시 먼저
POST /add로 번호를 받고, 그다음POST /edit로 필드 입력 (프론트엔드와 동일한 동작)모든 오류가 crash를 유발하지 않음: 각 도구에 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"
}
}적용 시나리오: 프로덕션 환경에서 테스트 프로젝트만 열기, 팀 구성원이 자신이 담당한 프로젝트만 조작.
3. 쓰기 빈도 제한
분당 최대 쓰기 횟수를 제한하여 AI가 단시간에 대량으로 항목을 생성하는 것을 방지합니다:
{
"env": {
"LALALEAP_WRITE_RATE_LIMIT": "5" // 每分鐘最多 5 次寫入(預設 10)
}
}제한에 도달하면 AI는 명확한 오류 메시지를 받습니다:
[頻率限制] 過去一分鐘已執行 5 次寫入操作(上限 5 次)。請稍後再試。적용 시나리오: AI가 루프로 대량 생성하는 것을 방지, "100개의 요구사항을 만들어줘" 같은 명령을 오해하는 것을 방지.
권장 설정 조합
상황 | 설정 |
개발/테스트 | 제한 없음, 또는 |
일상 사용 |
|
데모 시연 |
|
팀 공유 |
|
개발
# 開發模式(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새 도구 추가
src/tools/에 새 파일을 추가하거나 기존 파일을 수정합니다server.tool(name, description, zodSchema, handler)로 등록합니다새 파일인 경우
src/index.ts에서 import하고 register 함수를 호출합니다테스트를 실행하여 확인합니다
// 範例:新增一個 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,
};
}
}
);문제 해결
문제 | 해결 방법 |
|
|
| 자동 처리됨 (서버가 |
| MCP 클라이언트 설정의 |
서버에 연결할 수 없음 |
|
도구가 나타나지 않음 | 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 (도구 + 리소스 + 경계 조건 포함) | 50 | 100% |
API 통합 테스트 | 14 | 100% |
TypeScript 타입 검사 | — | 오류 없음 |
전체 테스트 보고서는 docs/test-report.md를 참조하세요.
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server for Atlassian Jira that enables AI assistants to manage issues, sprints, comments, and worklogs through natural language.MIT
- AlicenseNot gradedqualityCmaintenanceA 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.361MIT
- AlicenseNot gradedqualityBmaintenanceAn 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.2MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server for controlling the TimeLiner project management system, enabling AI clients to manage projects, tasks, members, and more via natural language.
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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