Skip to main content
Glama

flow-team-mcp

Flow Team OpenAPI를 MCP(Model Context Protocol) 클라이언트에서 사용할 수 있게 해주는 로컬 MCP 서버입니다.

Flow API 문서: https://api.flow.team/docs

현재 릴리스: v0.1.0

주요 기능

  • Flow OpenAPI 엔드포인트 목록을 검색하고 메타데이터를 확인할 수 있습니다.

  • FLOW_API_KEY를 사용해 Flow OpenAPI를 직접 호출할 수 있습니다.

  • 프로젝트 API는 전용 MCP 도구로 더 쉽게 사용할 수 있습니다.

    • 프로젝트 목록 조회

    • 특정 사용자가 참여 중인 프로젝트 조회

    • 프로젝트 참여자 조회

    • 프로젝트 컬럼 / 상태 컬럼 조회

    • 프로젝트 생성

    • 프로젝트 참여자 추가

Related MCP server: kickflow MCP Server

준비 사항

  • Node.js 20 이상 권장

  • npm

  • Flow Developer Portal에서 발급한 API Key

Git, Node.js, npm이 아직 설치되어 있지 않다면 Windows/macOS 설치 가이드를 먼저 확인하세요.

API Key는 서버 실행 환경변수로만 주입하세요. .env, 설정 파일, README 예시 등에 실제 키를 커밋하지 마세요.

로컬 설정

git clone <repository-url>
cd flow-team-mcp
npm install
npm run build

빌드가 끝나면 MCP 서버 엔트리포인트는 dist/index.js입니다.

로컬에서 서버 프로세스만 확인하려면 다음 명령을 실행할 수 있습니다.

FLOW_API_KEY="YOUR_FLOW_API_KEY" npm start

이 서버는 stdio 기반 MCP 서버라서 터미널에서 직접 실행하면 대기 상태로 보이는 것이 정상입니다. 실제 사용은 MCP 클라이언트 설정을 통해 연결합니다.

MCP 클라이언트 설정

아래 예시는 로컬에 clone한 저장소를 직접 실행하는 방식입니다. args의 경로는 본인 PC의 절대 경로로 바꾸세요.

{
  "mcpServers": {
    "flow-team": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/flow-team-mcp/dist/index.js"],
      "env": {
        "FLOW_API_KEY": "YOUR_FLOW_API_KEY"
      }
    }
  }
}

예를 들어 이 저장소가 /Users/me/Projects/flow-team-mcp에 있다면:

{
  "mcpServers": {
    "flow-team": {
      "command": "node",
      "args": ["/Users/me/Projects/flow-team-mcp/dist/index.js"],
      "env": {
        "FLOW_API_KEY": "YOUR_FLOW_API_KEY"
      }
    }
  }
}

클라이언트별 자세한 설정 방법:

전역 명령으로 연결하고 싶다면:

npm install
npm run build
npm link

그 다음 MCP 클라이언트 설정에서 flow-team-mcp 명령을 사용할 수 있습니다.

{
  "mcpServers": {
    "flow-team": {
      "command": "flow-team-mcp",
      "env": {
        "FLOW_API_KEY": "YOUR_FLOW_API_KEY"
      }
    }
  }
}

환경변수

이름

필수

기본값

설명

FLOW_API_KEY

-

Flow OpenAPI 호출에 사용할 API Key입니다.

FLOW_API_BASE_URL

아니오

https://api.flow.team

Flow API base URL입니다. 테스트 또는 프록시 환경에서만 변경하세요.

각 도구 호출에서 apiKey, baseUrl 입력값을 직접 넘기면 환경변수보다 우선합니다.

제공 도구

공통 도구

도구

설명

list_flow_endpoints

서버에 등록된 Flow OpenAPI 엔드포인트 목록을 조회합니다. version, group, method, search로 필터링할 수 있습니다.

get_flow_endpoint

엔드포인트 ID로 HTTP method, path, docs URL 같은 메타데이터를 조회합니다.

flow_request

endpointId 또는 직접 지정한 method / path로 Flow OpenAPI를 호출합니다.

프로젝트 도구

도구

설명

get_project_api_schema

프로젝트 API의 request, response, error 문서 정보를 조회합니다.

list_projects

Flow 프로젝트 목록을 조회합니다.

list_participant_projects

특정 사용자가 참여 중인 프로젝트 목록을 조회합니다.

get_project_participants

특정 프로젝트의 참여자 목록을 조회합니다.

get_project_columns

특정 프로젝트의 컬럼 목록을 조회합니다.

get_project_status_columns

특정 프로젝트의 상태 컬럼 목록을 조회합니다.

create_project

새 Flow 프로젝트를 생성합니다.

add_project_participants

프로젝트에 참여자를 추가합니다.

프롬프트 예시

MCP 클라이언트에서 다음처럼 요청할 수 있습니다.

Flow 프로젝트 목록 조회해줘.
projectId가 123000인 프로젝트의 참여자 목록 조회해줘.
Flow API에서 chats 관련 endpoint 목록 찾아줘.
Flow endpoint id가 post_v1_bots_botId_notifications인 API 메타데이터 보여줘.

도구 입력 예시

list_projects

{
  "cursor": "0"
}

get_project_participants

{
  "projectId": "123000"
}

create_project

{
  "registerId": "company@company.name",
  "title": "테스트 프로젝트",
  "description": "이 프로젝트는 OpenAPI로 생성되었습니다.",
  "defaultTab": "feed"
}

add_project_participants

{
  "projectId": "123000",
  "registerId": "company@company.name",
  "participants": [
    {
      "participantId": "user@company.name"
    }
  ]
}

flow_request

endpointId를 사용하는 방식:

{
  "endpointId": "get_v1_projects_projectId_participants",
  "pathParams": {
    "projectId": "123000"
  }
}

직접 method와 path를 지정하는 방식:

{
  "method": "GET",
  "path": "/v1/projects/{projectId}/participants",
  "pathParams": {
    "projectId": "123000"
  }
}

개발

npm run typecheck
npm run build

주요 파일 구조:

src/
  index.ts              # MCP 서버 부트스트랩
  endpoints.ts          # Flow API endpoint catalog
  flow-client.ts        # x-flow-api-key, path/query/body 처리, fetch 공통화
  mcp-result.ts         # MCP 응답 포맷 유틸
  schemas/
    projects.ts         # 프로젝트 API 문서 메타데이터와 Zod input schema
  tools/
    generic.ts          # list_flow_endpoints, get_flow_endpoint, flow_request
    projects.ts         # 프로젝트 전용 MCP tools

문제 해결

FLOW_API_KEY 환경변수 또는 apiKey 입력값이 필요합니다.

MCP 클라이언트 설정의 env.FLOW_API_KEY에 Flow API Key가 들어있는지 확인하세요. 클라이언트를 재시작해야 새 설정이 반영되는 경우가 많습니다.

Cannot find module .../dist/index.js

npm run build를 먼저 실행했는지 확인하세요. TypeScript 소스는 src/에 있고, MCP 클라이언트는 빌드 결과물인 dist/index.js를 실행합니다.

MCP 클라이언트에서 도구가 보이지 않음

  • MCP 설정 JSON 문법이 올바른지 확인하세요.

  • args가 절대 경로인지 확인하세요.

  • 설정 변경 후 MCP 클라이언트를 완전히 재시작하세요.

  • 로컬 저장소 위치를 옮겼다면 args 경로도 함께 수정하세요.

참고 사항

  • 현재 서버는 stdio transport를 사용합니다.

  • Flow API 응답은 원본 HTTP 상태, 헤더, body를 포함한 JSON 형태로 반환됩니다.

  • 일부 API는 Flow 계정, 이용기관, 프로젝트 권한에 따라 실패할 수 있습니다.

라이선스

ISC

Available Tools

11 tools
add_project_participantsAdd Flow project participantsC

Flow 프로젝트에 참여자를 추가합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNo
baseUrlNo
projectIdYes프로젝트ID
registerIdYes작성자ID
participantsYes참여자 정보

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states the action ('adds participants') without explaining side effects, idempotency, whether existing participants are overwritten, authorization needs, or what happens on error. This is a significant transparency gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no filler. It is front-loaded and easy to read. However, it is extremely brief and essentially restates the title, so while it is efficient, it does not add substantive value beyond the title itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters, no output schema, and no annotations, the description is incomplete. It does not explain what the tool returns (if anything), how to handle errors, or the relationship between registerId and participants. The moderate schema descriptions are not enough for an agent to confidently invoke the tool correctly in varied situations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter semantics beyond the schema. Schema coverage is 60% (3 of 5 parameters have minimal labels such as 'project ID' or 'participant info'), but the description does not clarify the role of 'registerId' (writer ID) or how it differs from 'participantId'. It also ignores apiKey and baseUrl, leaving their purpose undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the function: 'Adds participants to a Flow project' (Korean). It uses a specific verb ('adds') and a specific resource ('participants to a Flow project'), which fully distinguishes it from sibling tools like get_project_participants that handle retrieval. The title reinforces this, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention conditions like 'use when you need to add participants', nor does it reference any prerequisites, limitations, or exclusions. The use case is only implied by the function itself, not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projectCreate Flow projectD

Flow 프로젝트를 생성합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes프로젝트 제목
apiKeyNo
baseUrlNo
defaultTabNo홈 탭 설정
registerIdYes작성자ID
descriptionNo프로젝트 설명
postPermissionNo게시글 권한 정보
commentPermissionNo댓글 권한 정보

TDQS

D1.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as required permissions, side effects, idempotency, rate limits, or response details. The description only states the basic action, leaving the agent without insight into operational implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and structurally simple, which is inherently concise. However, it under-specifies and essentially repeats the title, so it does not effectively use its brevity to convey important context. It is not as problematic as a single vague word, but it fails to add value beyond the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, nested objects, no output schema, no annotations), the description is grossly insufficient. It does not explain what constitutes a Flow project, the significance of required fields, or any expected outcomes, leaving the agent to infer everything from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no meaning to parameters. The schema covers 75% of parameters, but the description does not clarify the remaining undocumented parameters (apiKey, baseUrl) or explain how the parameter groups (e.g., postPermission, commentPermission) relate to project creation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Flow 프로젝트를 생성합니다' (Creates a Flow project) is essentially a direct restatement of the tool name and title. It does not add specific scope or distinguish itself from sibling tools beyond the obvious create action, making it tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of situations where a different project-related tool (e.g., list_projects, add_project_participants) would be more appropriate, nor any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flow_requestCall Flow OpenAPIB

Flow OpenAPI를 호출합니다. FLOW_API_KEY 환경변수를 기본으로 사용하며, x-flow-api-key 헤더를 자동 추가합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON 요청 본문
pathNo예: /v1/projects/{projectId}/participants
queryNo쿼리스트링 값
apiKeyNoFLOW_API_KEY 대신 사용할 API Key
methodNo
baseUrlNo기본값: FLOW_API_BASE_URL 또는 https://api.flow.team
endpointIdNolist_flow_endpoints에서 확인한 endpoint id
pathParamsNo경로 템플릿 변수 값

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful context by revealing the default use of FLOW_API_KEY and automatic x-flow-api-key header. However, it omits critical behavioral traits: since it supports POST, PATCH, and DELETE, it can perform mutations, yet no warning about destructive operations or error handling is given. With no annotations, the description carries the full burden but only partially fulfills it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, two short sentences, with each providing distinct value: one states the function, the other the auth mechanism. There is no redundant or filler content, making it well-structured and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters, nested objects, and no output schema or annotations, the description is too sparse. It fails to explain how to construct requests, what the response format is, or how to use path/query/body parameters. It also doesn't relate to sibling tools, making it incomplete for an agent to invoke reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (88%), with most parameters already having descriptive text. The description adds no parameter-specific meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calls the Flow OpenAPI, with a specific verb and resource. It provides a bit more detail than the title by mentioning the automatic header, but it doesn't distinguish this generic request tool from the more specific sibling tools, so it lacks full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the alternative sibling tools. The description does not mention scenarios like 'use for custom endpoints not covered by specialized tools' or any exclusions, leaving the agent without direction on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_flow_endpointGet Flow endpoint metadataA

엔드포인트 ID로 Flow OpenAPI 경로, HTTP 메서드, 문서 URL을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It conveys that this is a read-only lookup ('조회합니다') and specifies the returned fields, but it does not disclose potential errors, permissions, rate limits, or side effects. It is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the action and target. It contains no filler or redundant information, making it highly concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (1 parameter, no output schema, no annotations), the description covers the essential aspects: what it does, what it returns, and what the parameter means. It lacks explicit usage guidance but is otherwise complete for a straightforward lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explicitly states '엔드포인트 ID로' (by endpoint ID), giving semantic meaning to the single 'id' parameter beyond the raw schema. Since schema description coverage is 0%, this is valuable and clarifies what kind of identifier is expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb '조회합니다' (retrieves) and identifies the exact resource: Flow OpenAPI path, HTTP method, and document URL by endpoint ID. This clearly distinguishes it from sibling tools like list_flow_endpoints (listing) and flow_request (executing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a specific endpoint ID and need its metadata, but it does not explicitly mention when to use this versus list_flow_endpoints or alternatives. No when-not conditions or alternative tool names are provided, so guidance remains implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_api_schemaGet Flow project API schemaC

프로젝트 API의 Metadata, Request, Response, Error 문서 정보를 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameNo
operationIdNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral transparency burden. The verb '조회합니다' (inquire/retrieve) indicates a read-only operation, which is positive. However, it does not mention authentication, error behavior, or other side effects, so transparency is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that directly states the tool's function with no filler. However, it is brief to the point of omitting crucial parameter context, so it is not maximally effective despite its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the parameters, when to use the tool, or what the returned documentation looks like, leaving significant gaps for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has two parameters (toolName, operationId) with zero description coverage, and the tool description does not mention these parameters at all. The agent receives no guidance on what values to provide or how they affect the query, failing to compensate for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves Metadata, Request, Response, and Error documentation for a project API, using the verb '조회합니다' (retrieves). This distinguishes it from sibling endpoint-focused tools like get_flow_endpoint and list_flow_endpoints, though 'project API' could be more explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool should be used when schema documentation for a project API is needed, but it provides no explicit comparison to alternatives or conditions for use. Sibling tools exist for endpoints, so clearer guidance would improve this dimension.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_columnsGet Flow project columnsC

Flow 프로젝트 컬럼 목록을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNo
userIdYes프로젝트 컬럼 조회 기준 사용자 ID
baseUrlNo
projectIdYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits on its own. It only states that the tool retrieves columns, giving no information about return format, pagination, error behavior, or authorization requirements. This is insufficient for the agent to understand side effects or data semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that efficiently states the tool's core action and resource. It is front-loaded with the action and contains no redundant words, though it is so brief that it borders on under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has four parameters and no output schema, so the description should provide extra context about what the returned column list looks like and how it relates to status columns. The current one-liner offers no guidance on response structure or when to use this over related tools, making it incomplete for an agent to invoke confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides descriptions only for userId ('프로젝트 컬럼 조회 기준 사용자 ID'), while projectId, apiKey, and baseUrl have no description. The tool description adds no parameter-specific meaning beyond the schema, and with only 25% schema coverage, it fails to compensate for the lack of documentation on the remaining parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the column list of a Flow project using the verb '조회합니다' (retrieve) and the resource 'Flow 프로젝트 컬럼' (Flow project columns). However, it does not explicitly distinguish this from the sibling tool get_project_status_columns, which likely returns status columns specifically, leaving some ambiguity about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as get_project_status_columns or list_projects. The description lacks any mention of prerequisites, context, or exclusions, leaving the agent to infer usage solely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_participantsGet Flow project participantsC

Flow 프로젝트 참여자 목록을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNo
baseUrlNo
projectIdYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation ('retrieves'), but it does not disclose authentication requirements, pagination, rate limits, or the structure of the returned participants. The description is minimal and adds only the read intent, lacking substantive behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that gets to the point without unnecessary words or repetition. It is appropriately front-loaded with the action and resource. However, it is arguably under-specified, which slightly detracts from its effectiveness, but as a concise statement it is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (a read operation) and the lack of an output schema, the description is insufficient for an agent to fully understand the invocation context. It does not describe the return format, potential errors, or the significance of the parameters. The complete absence of parameter semantics and behavioral details leaves significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not compensate by explaining any parameters. It mentions project participants, hinting at projectId's role, but it does not clarify the purpose of apiKey or baseUrl, nor the format of projectId. With three parameters and no description coverage, the agent receives no added semantic value beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a list of project participants for a Flow project. It uses a specific verb ('조회합니다' - retrieves) and identifies the resource (project participants), which is understandable and distinct from sibling tools like list_projects or get_project_columns. However, it does not explicitly differentiate from list_participant_projects, so it misses the top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions. It simply states what the tool does without any usage direction, so the agent must infer applicability from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_status_columnsGet Flow project status columnsB

Flow 프로젝트 상태 컬럼 목록을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNo
userIdYes상태 컬럼 조회 기준 사용자 ID
baseUrlNo
projectIdYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description must carry the full burden of behavioral disclosure. It labels the operation as a query ('조회합니다'), implying read-only intent, but does not mention authentication requirements, permissions, potential errors, or side effects. This minimal information is insufficient for safe autonomous invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that clearly states the function. It is well-structured, front-loaded with the action, and contains no redundant or filler words. Every part of the sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should clarify what the returned 'list' contains, but it only says 'status columns' without specifying fields, format, or error handling. Essential context like project membership requirements or rate limits is missing, making the tool poorly specified for complex autonomous workflows.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, with only userId having a description in the schema. The tool description itself adds no parameter-level meaning. projectId, apiKey, and baseUrl remain unexplained, forcing the agent to infer their purpose from the tool name and context. This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('retrieves the list') and the specific resource ('status columns of a Flow project'). This distinguishes it from sibling tool get_project_columns, which likely handles general columns, by explicitly narrowing scope to 'status columns'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of 'use get_project_columns for other columns' or any exclusion criteria. The only hint is the tool name itself, which implies a specific use case but does not explicitly state it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_flow_endpointsList Flow OpenAPI endpointsC

Flow OpenAPI 문서에서 수집한 엔드포인트 목록을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNo
methodNo
searchNo
versionNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full transparency burden. However, it merely restates the tool's function without disclosing additional behavioral traits such as authentication requirements, read-only nature, or result characteristics. The name and title already imply a list operation, so no extra value is added.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise Korean sentence that directly states the purpose with no wasted words or unnecessary detail. It is appropriately sized for a simple list operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no annotations, no output schema, and 0% parameter coverage. The description only covers the basic action, leaving all parameter semantics and any behavioral nuances unaddressed. For a simple listing tool this is minimal but still incomplete, especially without param explanations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the four parameters (group, method, search, version). The burden is on the description to compensate, but it provides no parameter information whatsoever.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a list of endpoints from the Flow OpenAPI document. The verb '조회합니다' (retrieve/list) and resource 'endpoint 목록' (endpoint list) are specific, and the plural '목록' distinguishes it from sibling get_flow_endpoint which likely retrieves a single endpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description only states what the tool does, without any context for selection, exclusions, or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_participant_projectsList projects by participantB

특정 사용자가 참여 중인 Flow 프로젝트를 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNo
baseUrlNo
participantIdYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It communicates a read operation but does not disclose return format, pagination, authentication requirements, or behavior when no projects are found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence in Korean that immediately conveys the tool's purpose. It contains no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple with 3 parameters and no output schema, and the description gives the core purpose. However, it lacks usage guidance, parameter context for apiKey/baseUrl, and any indication of the response shape, making it barely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies participantId as the 'specific user' but does not explain apiKey or baseUrl beyond what their names imply. More guidance on these parameters is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('retrieves') and a specific resource ('Flow projects in which a specific user participates'). This clearly distinguishes it from sibling tools like list_projects (all projects) and get_project_participants (participants of a project).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is implied by the description, but there is no explicit guidance on when to use this tool versus alternatives such as list_projects or get_project_participants. No exclusions or context are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsList Flow projectsC

Flow 프로젝트 목록을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNo
cursorNo페이징 커서. 기본값 0, page size 500
baseUrlNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavior. It does not disclose whether the operation is read-only, what authentication (apiKey) is required, or pagination behavior, even though the cursor parameter implies pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, making it concise, but it is under-specified. It conveys the basic purpose yet lacks structure or additional context, providing little beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, no annotations, and no output schema, this description is incomplete. It fails to mention pagination, authentication requirements, or relationships to sibling tools, leaving the agent under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (only cursor described), and the description adds no parameter semantics. apiKey and baseUrl are left undocumented, and the description does not explain how they relate to the tool's use.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Flow 프로젝트 목록을 조회합니다' clearly states the action (list) and resource (Flow projects). It differentiates from sibling tools like list_flow_endpoints by focusing on projects, but does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. It only states the listing action, with no context on pagination, prerequisites, or scenarios where other tools might be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.0
    • First observedadd_project_participants
    • First observedcreate_project
    • First observedflow_request
    • First observedget_flow_endpoint
    • First observedget_project_api_schema
    • First observedget_project_columns
    • First observedget_project_participants
    • First observedget_project_status_columns
    • First observedlist_flow_endpoints
    • First observedlist_participant_projects
    • First observedlist_projects

TDQS

B3/5.0

Scored across 11 tools

Disambiguation4/5

Most tools have distinct purposes: listing vs fetching a single endpoint, project vs participant-specific project lists, and different column types. However, get_project_columns and get_project_status_columns could be confused, and list_projects vs list_participant_projects may overlap without careful reading.

Naming Consistency4/5

The naming convention is predominantly verb_noun snake_case (get_, list_, create_, add_) which is predictable. The exception is flow_request, which does not follow the get/list pattern but still communicates its action clearly.

Tool Count5/5

With 11 tools, the set is well-scoped for a Flow project management and API integration server. Each tool addresses a distinct need, and the count is within the ideal 3-15 range without feeling bloated or thin.

Completeness4/5

The server covers core project operations: listing/creating projects, managing participants, accessing columns, and handling API endpoints including schema, list, get, and invocation. Missing are update/delete for projects or participants, but these may be out of scope for the intended workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers