{"id":51377517,"url":"https://github.com/lemoncloud-io/flow-mcp","last_synced_at":"2026-07-03T14:05:18.729Z","repository":{"id":354323255,"uuid":"1222262553","full_name":"lemoncloud-io/flow-mcp","owner":"lemoncloud-io","description":"MCP server for Eureka Flow — build, run, and monitor visual workflows from any MCP client","archived":false,"fork":false,"pushed_at":"2026-06-17T08:24:59.000Z","size":1778,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-17T10:18:07.805Z","etag":null,"topics":["ai-tools","claude-desktop","eureka-flow","mcp","mcp-server","model-context-protocol","typescript","workflow-automation"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@lemoncloud/flow-mcp","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lemoncloud-io.png","metadata":{"files":{"readme":"README.ko.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-27T07:37:13.000Z","updated_at":"2026-04-28T12:17:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lemoncloud-io/flow-mcp","commit_stats":null,"previous_names":["lemoncloud-io/flow-mcp"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/lemoncloud-io/flow-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemoncloud-io%2Fflow-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemoncloud-io%2Fflow-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemoncloud-io%2Fflow-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemoncloud-io%2Fflow-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lemoncloud-io","download_url":"https://codeload.github.com/lemoncloud-io/flow-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemoncloud-io%2Fflow-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35088509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-03T02:00:05.635Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-tools","claude-desktop","eureka-flow","mcp","mcp-server","model-context-protocol","typescript","workflow-automation"],"created_at":"2026-07-03T14:05:16.932Z","updated_at":"2026-07-03T14:05:18.718Z","avatar_url":"https://github.com/lemoncloud-io.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/lemoncloud-io/flow-mcp/main/docs/logo.png\" alt=\"Eureka Flow\" height=\"60\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eflow-mcp\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@lemoncloud/flow-mcp\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@lemoncloud/flow-mcp?style=flat-square\" alt=\"npm\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.typescriptlang.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/TypeScript-5.9-blue?style=flat-square\" alt=\"TypeScript\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://modelcontextprotocol.io/\"\u003e\u003cimg src=\"https://img.shields.io/badge/MCP_SDK-1.29-green?style=flat-square\" alt=\"MCP SDK\" /\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache_2.0-yellow?style=flat-square\" alt=\"License\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003e\u003ca href=\"https://flow.eureka.codes\"\u003eEureka Flow\u003c/a\u003e를 AI에서 바로 쓸 수 있는 MCP 서버\u003c/b\u003e\u003cbr/\u003e\n  자연어로 워크플로우를 만들고, 실행하고, 결과를 확인하세요.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003e쉽게 말하면:\u003c/b\u003e Claude를 비롯한 AI 비서에게 워크플로우를 만들고 실행하는 능력을 더해 주는 도구입니다.\u003cbr/\u003e\n  대화만 하면 됩니다 — 코딩도, 최초 로그인 외의 설정도 필요 없습니다.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"README.md\"\u003eEnglish\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/lemoncloud-io/flow-mcp/main/docs/images/screenshot-dark.jpg\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/lemoncloud-io/flow-mcp/main/docs/images/screenshot-light.jpg\" /\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/lemoncloud-io/flow-mcp/main/docs/images/screenshot-dark.jpg\" alt=\"Eureka Flow\" width=\"100%\" /\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n## 어디에 쓰나요?\n\n**Eureka Flow**는 여러 단계를 이어 붙여 하나의 *플로우*로 만드는 비주얼 도구입니다. 입력을 받아 → 처리하고(요약·변환·AI 모델 호출·API 연동) → 결과를 얻습니다. 코드는 한 줄도 필요 없습니다. 각 단계가 하나의 **블록**이고, 블록을 연결해 데이터를 흘려보냅니다.\n\n원래는 에디터에서 플로우를 일일이 손으로 짜야 합니다. **flow-mcp**는 그 일을 AI 비서가 대신하도록 해 줍니다. 채팅으로 원하는 바를 말하면(\"내가 붙여넣는 글을 요약하는 플로우 만들어줘\") AI가 플로우를 만들고, 실행하고, 결과까지 확인해 줍니다. Claude에게 Eureka Flow를 조작할 손을 쥐여 주는 셈입니다.\n\n## 이런 게 됩니다\n\n**Claude Desktop**, **Cursor**, **Windsurf**, **VS Code (Continue/Cline)**, **Claude Code** 등 MCP를 지원하는 AI 클라이언트라면 어디서든 쓸 수 있습니다.\n\n그냥 말하면 됩니다:\n\n| 하고 싶은 일 | 이렇게 말하세요 |\n|-------------|----------------|\n| 로그인 (키 복붙 없음) | \"Flow 로그인해줘\" |\n| 워크플로우 목록 보기 | \"내 flow 목록 보여줘\" |\n| 새 워크플로우 만들기 | \"텍스트 입력 → 버퍼 → 미리보기 flow 만들어줘\" |\n| 워크플로우 실행 | \"1004897 flow 실행해봐\" |\n| 실행 결과 확인 | \"미리보기 노드의 출력값 보여줘\" |\n| 구조 시각화 | \"1004897 그래프 보여줘\" |\n| 노드 수정 | \"1009369 노드 이름을 EurekaFlow로 바꿔\" |\n| 노드 추가 | \"이 flow에 텍스트 입력 블록 하나 추가해줘\" |\n| 연결 | \"입력 노드와 버퍼 노드를 연결해줘\" |\n| 삭제 | \"연결 안 된 노드 정리해줘\" |\n\n코드도, 도구 이름도 몰라도 됩니다. 자연어로 요청하면 Claude가 알아서 처리합니다.\n\n## 시작하기\n\n\u003e **준비물:** [**Claude Desktop**](https://claude.ai/download) 설치, 무료 EurekaCodes 계정(Google 로그인만 하면 됨 — 별도 가입 양식 없음). Claude Desktop에 Node.js 런타임이 내장돼 있어 따로 설치할 건 없습니다.\n\n### 🚀 원클릭 설치 — Claude Desktop (추천, 터미널 불필요)\n\n1. **확장 파일 다운로드.** [**Releases 페이지**](https://github.com/lemoncloud-io/flow-mcp/releases/latest)에서 **Assets**를 열고 **`flow-mcp.mcpb`** 다운로드. *(\"Source code\" 파일은 무시 — 필요 없습니다.)*\n2. **설치.** **`flow-mcp.mcpb`** 더블클릭 → Claude Desktop **설치 창**이 열림 → **API 키 칸은 비워두고**(다음 단계에서 챗으로 로그인) **Install** 클릭.\n   - *Mac이 \"확인되지 않은 개발자\" 경고?* 파일 우클릭 → **열기** → **열기**. 다운로드한 파일에서는 정상입니다.\n   - *설치 창이 안 뜨면?* Claude Desktop → **설정 → 확장(Extensions)** 에서 파일을 드래그하세요.\n3. **로그인 — 키 복붙 없음.** Claude에게 **\"Flow 로그인해줘\"** 라고 하면 Google 로그인 브라우저 창이 열립니다. 로그인만 완료하면 Claude가 API 키를 자동 발급·저장합니다. *(직접 키를 쓰고 싶다면 [flow.eureka.codes](https://flow.eureka.codes) → 로그인 → Create Key → Copy 후 2단계의 API 키 칸에 붙여넣으세요.)*\n4. **작동 확인.** Claude에게 *\"내 flow 목록 보여줘\"* — *\"flow가 없습니다\"* 라도 뜨면 연결 성공! 🎉 이어서 *\"플로우 만들어줘\"* 또는 *\"내 크레딧 잔액 확인해줘\"*.\n   - *빨간 오류나 \"server disconnected\"가 보이면?* **설정 → 확장(Extensions)** 에서 flow-mcp가 켜져 있는지 확인하고 Claude에게 다시 *\"로그인해줘\"* 해보세요.\n\n\u003e 로그인 한 번으로 **플로우 + 크레딧(빌링)** 모두 사용 가능. 키 복붙도, 설정 파일 편집도 없습니다.\n\n### 다른 클라이언트 (Cursor · Windsurf · VS Code · Claude Code)\n\n**원클릭:** 배지를 누르면 `npx` 설정이 자동으로 추가됩니다. 그다음 **\"Flow 로그인해줘\"** 라고 말하세요:\n\n\u003cp\u003e\n  \u003ca href=\"https://cursor.com/install-mcp?name=flow-mcp\u0026config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBsZW1vbmNsb3VkL2Zsb3ctbWNwIl19\"\u003e\u003cimg src=\"https://img.shields.io/badge/Add_to-Cursor-0A0A0A?style=flat-square\u0026logo=cursor\u0026logoColor=white\" alt=\"Cursor에 flow-mcp 추가\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://insiders.vscode.dev/redirect/mcp/install?name=flow-mcp\u0026config=%7B%22name%22%3A%22flow-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40lemoncloud%2Fflow-mcp%22%5D%7D\"\u003e\u003cimg src=\"https://img.shields.io/badge/Install_in-VS_Code-007ACC?style=flat-square\" alt=\"VS Code에 flow-mcp 설치\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n직접 설정하려면:\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e수동 설치\u003c/b\u003e (npm + 설정 파일)\u003c/summary\u003e\n\n**1. 설치**\n\n```bash\nnpm install -g @lemoncloud/flow-mcp\n```\n\n**2. 클라이언트 MCP 설정에 추가** — API 키 없어도 됩니다. Claude Desktop 설정 파일: `~/Library/Application Support/Claude/claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"flow-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@lemoncloud/flow-mcp\"]\n    }\n  }\n}\n```\n\n- **Cursor / Windsurf / VS Code (Continue/Cline):** IDE의 MCP 설정에 동일한 `mcpServers` 블록 추가.\n- **Claude Code:** `claude mcp add flow-mcp -- npx -y @lemoncloud/flow-mcp`\n\n**3. 재시작** 후 **\"Flow 로그인해줘\"** — 브라우저 Google 로그인으로 키가 자동 발급됩니다. 이어서 **\"내 flow 목록 보여줘\"**.\n\n\u003e 고정 키를 쓰고 싶다면? [flow.eureka.codes](https://flow.eureka.codes)에서 발급(로그인 → **Create Key** → **Copy**) 후 위 설정에 `\"env\": { \"FLOW_API_KEY\": \"ec-…\" }` 를 추가하면 로그인 없이 바로 동작합니다.\n\n**환경변수** — 모두 선택사항. `FLOW_API_KEY`는 챗 로그인을 건너뛸 때만 필요합니다:\n\n| 환경변수 | 필수 | 기본값 | 설명 |\n|---------|:---:|--------|------|\n| `FLOW_API_KEY` | | — | API 키 (선택 — `auth` 툴이 브라우저 로그인으로 발급) |\n| `FLOW_API_URL` | | `https://api.eureka.codes/flw-v1` | API 서버 주소 |\n| `FLOW_API_TIMEOUT` | | `30000` | API 요청 타임아웃 (ms) |\n| `FLOW_WS_URL` | | `wss://wss.eureka.codes/wss-v1` | WebSocket 주소 (실시간 진행상황 모니터링) |\n| `LOG_LEVEL` | | `info` | stderr 로그 상세도: `debug` \\| `info` \\| `warn` \\| `error` |\n\n\u003c/details\u003e\n\n## 플로우 템플릿\n\n어디서 시작할지 막막하다면 flow-mcp에 내장된 **가이드 템플릿**을 쓰세요. Claude가 워크플로우를 처음부터 끝까지 진행하도록 단계별로 안내합니다. MCP 프롬프트를 지원하는 클라이언트(Claude Desktop, Cursor)에서는 `/`를 입력해 고르거나, 이름으로 바로 요청하면 됩니다:\n\n| 템플릿 | 하는 일 |\n|--------|---------|\n| **quick-flow** | text input → buffer → preview 플로우를 만들고 실행 (첫 실행에 추천) |\n| **etl-pipeline** | 설명을 바탕으로 추출 → 변환 → 적재 다단계 플로우 구성 |\n| **debug-execution** | 플로우를 실행한 뒤 노드·포트를 검사해 실패 지점 추적 |\n| **publish-flow** | 플로우를 만들거나 기존 것을 골라 공개 템플릿으로 게시 |\n\n각 템플릿은 알맞은 `flow_read` / `flow_do` 액션으로 Claude를 안내할 뿐 — 새로 승인할 권한은 없습니다.\n\n## 사용 예시\n\n### 워크플로우 만들기\n\n```\n\"사용 가능한 블록 보여줘\"\n→ 입력/처리/출력 블록 목록 표시\n\n\"텍스트 입력, 3초 버퍼, 미리보기로 연결된 flow 만들어줘\"\n→ 노드 3개 + 엣지 2개 자동 생성\n\n\"만든 flow 실행해봐\"\n→ 실시간 진행상황 표시 → 결과 반환\n```\n\n### 기존 워크플로우 수정\n\n```\n\"1004897 flow 로드해줘\"\n→ 노드, 엣지, 포트 데이터 표시\n\n\"입력 노드의 텍스트를 Hello Eureka로 바꿔\"\n→ config.text 변경\n\n\"여기에 출력 블록 하나 더 추가하고 연결해줘\"\n→ 새 노드 추가 + 연결\n\n\"그래프 보여줘\"\n→ Mermaid 다이어그램 표시\n```\n\n### 실행 결과 분석\n\n```\n\"전체 실행해봐\"\n→ 각 노드별 진행상황 + 완료 여부 표시\n\n\"미리보기 노드의 출력값은?\"\n→ 포트 데이터 (값, 타입, 타임스탬프)\n```\n\n### 크레딧 관리\n\n\u003e **처음 충전하시나요?** 먼저 **[billing.eureka.codes](https://billing.eureka.codes)** 에서 카드를 등록하세요. 잔액·팩·내역은 카드 없이도 조회되지만, 결제에는 등록된 카드가 필요합니다.\n\n```\n\"내 크레딧 잔액 확인해줘\"\n→ 전체 / 사용 가능 / 보류 크레딧\n\n\"크레딧 팩 보여줘\"\n→ 구매 가능한 팩 + USD 가격\n\n\"1,000 크레딧 충전해줘\"\n→ 등록된 카드로 결제 (카드 없으면 billing.eureka.codes에서 등록)\n\n\"내 크레딧 사용 내역 보여줘\"\n→ 충전/사용 내역 (최신순)\n```\n\n### 플로우 공개\n\n```\n\"1004897 플로우 공개해줘\"        → public으로 전환\n\"1004897 플로우 비공개로 바꿔\"   → 비공개로 전환\n```\n\n## 5개 도구, 31개 액션\n\nflow-mcp는 도구가 **5개**뿐입니다 — 권한 승인을 31번이 아니라 몇 번만 하면 됩니다. 도메인(flow / credit) × 접근(**read** 읽기 / **do** 쓰기)으로 나뉘고, 로그인용 **auth** 도구가 별도로 있습니다. 읽기 도구는 read-only로 표시되며, ⚠️ 변경·결제는 `*_do` 도구에만 모여 있습니다. 도구 이름을 직접 부를 일은 없습니다 — Claude에게 그냥 말하면(\"로그인\", \"플로우 공개해줘\", \"크레딧 확인\") 알맞은 액션을 자동으로 선택합니다.\n\n### `flow_read` — 플로우 읽기 (read-only)\n\n`{ action, params }` · 액션:\n`profile_get` · `flow_list` · `flow_load` · `flow_graph` · `flow_export` · `node_get` · `node_get_port` · `block_get` · `block_list` · `run_list` · `run_get`\n\n### `flow_do` — 플로우 수정 \u0026 실행 ⚠️\n\n`{ action, params }` · 액션:\n`flow_create` · `flow_update` · `flow_publish` · `flow_save` · `flow_clone` · `flow_run` · `flow_run_from` · `node_create` · `node_run` · `node_update` · `node_delete` · `edge_create` · `edge_delete`\n\n### `credit_read` — 크레딧 읽기 (read-only)\n\n`{ action, params }` · 액션:\n`credit_balance` · `credit_packs` · `credit_history`\n\n### `credit_do` — 크레딧 충전 ⚠️\n\n`{ action, params }` · 액션:\n`credit_purchase`\n\n### `auth` — 로그인 / 로그아웃\n\n`{ action, params }` · 액션:\n`login` · `status` · `logout`\n\n\u003e `login`은 Google 로그인 브라우저를 열어 API 키를 자동 발급·저장합니다 — 복붙 불필요. 도구마다 **\"Always allow\" 한 번**씩이면 끝. 읽기 도구 2개는 read-only라 부담 없이 허용할 수 있고, 데이터를 변경하거나 카드를 결제하는 건 `*_do` 도구뿐입니다.\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e개발자 가이드\u003c/b\u003e\u003c/summary\u003e\n\n### 설치 및 빌드\n\n```bash\ngit clone https://github.com/lemoncloud-io/flow-mcp.git\ncd flow-mcp\nnpm install\nnpm run build\n```\n\n### 명령어\n\n| 명령어 | 설명 |\n|--------|------|\n| `npm run build` | TypeScript 컴파일 |\n| `npm run dev` | Watch 모드 |\n| `npm run lint` | ESLint |\n| `npm run lint:type` | 타입 체크 (`tsc --noEmit`) |\n| `npm run format` | Prettier 포맷 |\n| `npm start` | MCP 서버 실행 (stdio) |\n| `npm test` | 테스트 |\n\n### 로컬 빌드로 연결\n\n```json\n{\n  \"mcpServers\": {\n    \"flow-mcp\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/flow-mcp/dist/stdio.js\"],\n      \"env\": {\n        \"FLOW_API_KEY\": \"your-api-key\",\n        \"FLOW_WS_URL\": \"wss://wss.eureka.codes/wss-v1\"\n      }\n    }\n  }\n}\n```\n\n### 아키텍처\n\n```\nstdio.ts (console suppression + JSON-RPC filter)\n  -\u003e server.ts (McpServer + 5 dispatch tools -\u003e 31 actions)\n    -\u003e tools/*.ts (tool handlers)\n      -\u003e api-client.ts (Axios -\u003e flows-api REST)\n      -\u003e ws-client.ts (WebSocket -\u003e real-time execution events)\n      -\u003e config.ts (Zod v4 env validation)\n```\n\n### WebSocket 실행 흐름\n\n```\n1. WS 연결 (info= 파라미터 → connectionId 수신)\n2. 실행 트리거 (POST /nodes/:id/run?connection=\u003cconnId\u003e)\n3. 이벤트 모니터링 (노드 상태 + 포트 업데이트)\n4. 완료 감지 (전체 terminal 또는 1.5초 quiet period)\n5. 전체 이벤트 로그 포함하여 결과 반환\n```\n\n### npm publish\n\n```bash\nnpm run build\nnpm publish --access public\n```\n\n\u003c/details\u003e\n\n## 관련 프로젝트\n\n- [Eureka Flow](https://github.com/lemoncloud-io/eureka-flow) — 비주얼 워크플로우 에디터 (프론트엔드)\n\n## 라이선스\n\nApache-2.0 -- [LemonCloud](https://lemoncloud.io)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemoncloud-io%2Fflow-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flemoncloud-io%2Fflow-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemoncloud-io%2Fflow-mcp/lists"}