Interactive MCP
인터랙티브-mcp
Node.js/TypeScript로 구현된 MCP 서버로, LLM과 사용자 간의 상호작용을 원활하게 합니다. 참고: 이 서버는 알림 및 명령줄 프롬프트를 표시하기 위해 사용자 운영 체제에 직접 액세스해야 하므로 MCP 클라이언트(예: Claude Desktop, VS Code)와 함께 로컬에서 실행되도록 설계되었습니다.
(참고: 이 프로젝트는 초기 단계에 있습니다.)
간략하게 살펴보고 싶으신가요? 소개 블로그 게시물을 확인해 보세요: AI 비서의 추측 방지 — interactive-mcp 소개
도구
이 서버는 MCP(Model Context Protocol)를 통해 다음 도구를 제공합니다.
request_user_input: 사용자에게 질문을 하고 답변을 반환합니다. 미리 정의된 옵션을 표시할 수 있습니다.message_complete_notification: 간단한 OS 알림을 보냅니다.start_intensive_chat: 지속적인 명령줄 채팅 세션을 시작합니다.ask_intensive_chat: 활성화된 집중 채팅 세션 내에서 질문을 합니다.stop_intensive_chat: 활성화된 집중 채팅 세션을 닫습니다.
Related MCP server: Interactive Feedback MCP
데모
다음은 대화형 기능의 데모입니다.
일반 질문 | 완료 알림 |
|
|
집중 채팅 시작 | 집중 채팅 종료 |
|
|
사용 시나리오
이 서버는 LLM이 로컬 머신에서 사용자와 직접 상호 작용해야 하는 다음과 같은 시나리오에 이상적입니다.
대화형 설정 또는 구성 프로세스.
코드 생성이나 수정 중에 피드백을 수집합니다.
페어 프로그래밍에서 지시사항을 명확히 하거나 동작을 확인합니다.
LLM 작업 중 사용자 입력이나 확인이 필요한 모든 워크플로입니다.
클라이언트 구성
이 섹션에서는 interactive-mcp 서버를 사용하도록 MCP 클라이언트를 구성하는 방법을 설명합니다.
기본적으로 사용자 프롬프트는 30초 후에 시간 초과됩니다. 클라이언트를 구성할 때 args 배열에 명령줄 플래그를 직접 추가하여 시간 초과 또는 도구 비활성화와 같은 서버 옵션을 사용자 지정할 수 있습니다.
npx 명령을 사용할 수 있는지 확인하세요.
Claude Desktop/Cursor 사용
다음의 최소 구성을 claude_desktop_config.json (Claude Desktop) 또는 mcp.json (Cursor)에 추가합니다.
지엑스피1
특정 버전
{
"mcpServers": {
"interactive": {
"command": "npx",
"args": ["-y", "interactive-mcp@1.9.0"]
}
}
}사용자 정의 시간 제한(30초)을 사용한 예:
{
"mcpServers": {
"interactive": {
"command": "npx",
"args": ["-y", "interactive-mcp", "-t", "30"]
}
}
}VS Code를 사용한 사용
다음의 최소 구성을 사용자 설정(JSON) 파일이나 .vscode/mcp.json 에 추가합니다.
{
"mcp": {
"servers": {
"interactive-mcp": {
"command": "npx",
"args": ["-y", "interactive-mcp"]
}
}
}
}macOS 권장 사항
기본 Terminal.app 사용하여 macOS에서 더 원활한 환경을 얻으려면 다음 프로필 설정을 고려하세요.
(셸 탭): "셸 종료 시" ( 터미널 > 설정 > 프로필 > [내 프로필] > 셸 )에서 "셸이 정상적으로 종료되면 닫기" 또는 "창 닫기"를 선택하세요. 이 설정은 MCP 서버 시작 및 종료 시 창을 관리하는 데 도움이 됩니다.
개발 설정
이 섹션은 주로 서버를 수정하거나 서버에 기여하려는 개발자를 위한 것입니다. MCP 클라이언트와 함께 서버를 사용 하려면 위의 "클라이언트 구성" 섹션을 참조하세요.
필수 조건
Node.js: 버전 호환성을 위해
package.json확인하세요.pnpm: 패키지 관리에 사용됩니다. Node.js를 설치한 후
npm install -g pnpm사용하여 설치하세요.
설치(개발자)
저장소를 복제합니다.
git clone https://github.com/ttommyth/interactive-mcp.git cd interactive-mcp종속성 설치:
pnpm install
애플리케이션 실행(개발자)
pnpm start명령줄 옵션
interactive-mcp 서버는 다음 명령줄 옵션을 허용합니다. 이러한 옵션은 일반적으로 MCP 클라이언트의 JSON 설정에서 args 배열에 직접 추가하여 구성해야 합니다("클라이언트 구성" 예시 참조).
옵션 | 별명 | 설명 |
|
| 사용자 입력 프롬프트의 기본 시간 초과(초)를 설정합니다. 기본값은 30초입니다. |
|
| 특정 도구나 그룹을 비활성화합니다(쉼표로 구분된 목록). 서버가 해당 도구나 그룹을 광고하거나 등록하지 않도록 합니다. 옵션: |
예: 클라이언트 구성 args 배열에 여러 옵션 설정:
// Example combining options in client config's "args":
"args": [
"-y", "interactive-mcp",
"-t", "30", // Set timeout to 30 seconds
"--disable-tools", "message_complete_notification,intensive_chat" // Disable notifications and intensive chat
]개발 명령
빌드:
pnpm build린트:
pnpm lint형식:
pnpm format
상호작용을 위한 지침 원칙
이 MCP 서버와 상호 작용할 때(예: LLM 클라이언트로서), 명확성을 보장하고 예상치 못한 변경을 줄이려면 다음 원칙을 준수하세요.
상호작용을 우선시하세요. 제공된 MCP 도구(
request_user_input,start_intensive_chat등)를 자주 활용하여 사용자와 소통하세요.명확한 설명을 구하세요: 요구 사항, 지침 또는 맥락이 불분명한 경우, 진행하기 전에 항상 명확한 질문을 하세요. 섣불리 추측하지 마세요.
작업 확인: 중요한 작업(파일 수정, 복잡한 명령 실행, 아키텍처 결정 등)을 수행하기 전에 사용자와 계획을 확인하세요.
옵션 제공: 가능한 경우 MCP 도구를 통해 미리 정의된 옵션을 사용자에게 제공하여 빠른 의사 결정을 돕습니다.
다음과 같이 LLM 클라이언트에게 해당 지침을 제공할 수 있습니다.
# Interaction
- Please use the interactive MCP tools
- Please provide options to interactive MCP if possible
# Reduce Unexpected Changes
- Do not make assumption.
- Ask more questions before executing, until you think the requirement is clear enough.기여하다
기여를 환영합니다! 표준 개발 관행을 준수해 주세요. (자세한 내용은 추후 추가될 수 있습니다.)
특허
MIT(자세한 내용은 LICENSE 파일을 참조하세요. 해당되는 경우 또는 라이선스를 직접 지정하세요).
Available Tools
5 toolsask_intensive_chatA
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | Question to ask the user | |
| sessionId | Yes | ID of the intensive chat session | |
| predefinedOptions | No | Predefined options for the user to choose from (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite missing annotations, the description discloses key behaviors: returns user's answer or indicates non-response, maintains chat history, and supports predefined options. However, it lacks details on error cases or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with labeled sections and front-loaded summary. However, some repetition exists (e.g., features overlap with usage notes). Could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains return behavior. For a tool with 3 parameters and simple interaction, it covers essential aspects: session requirement, repeated use, and optional options. Missing potential edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage, but the description adds value with examples and clarifies optional nature of 'predefinedOptions'. This exceeds the baseline 3 by providing practical usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it asks a new question in an active intensive chat session previously started, with specific verb and resource. It distinguishes from siblings like 'start_intensive_chat' and 'stop_intensive_chat' by focusing on continuation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'whenToUseThisTool' section explicitly lists scenarios for use, and importantNotes highlight the prerequisite session ID and repeated usage within the same response. This provides clear guidance on when and how to use vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
message_complete_notificationA
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Notification body | |
| projectName | Yes | Notification title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries behavioral info. It specifies cross-platform OS notifications and best practices like consistent projectName usage. Lacks details on potential side effects, but for a simple notification tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured into sections (description, notes, when to use, features, best practices, parameters, examples). It is detailed but each section adds necessary value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 string parameters and no output schema, the description is fully complete: it explains purpose, usage, parameters, examples, and best practices. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with concise descriptions. The description adds value by explaining parameter use (title vs body) and providing examples, exceeding the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool notifies when a response completes and must be used exactly once per message. It distinguishes itself from sibling chat tools by focusing on signaling completion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'whenToUseThisTool' and 'importantNotes' provide comprehensive guidance: use at end of query, after tool sequences, or multi-step processes. The mandatory once-per-message rule is emphasized.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_user_inputA
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The specific question for the user (appears in the prompt) | |
| projectName | Yes | Identifies the context/project making the request (used in prompt formatting) | |
| predefinedOptions | No | Predefined options for the user to choose from (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully discloses behavior: pop-up display, return of user response or timeout after 60 seconds, context maintenance, graceful handling of empty responses, and formatting with project context. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections but is lengthy (many sentences). Some redundancy between importantNotes and bestPractices (e.g., both emphasize frequent use). Could be tightened without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with no output schema, the description is exceptionally complete: covers purpose, usage guidance, features, best practices, and examples. Leaves no gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description's parameters section adds context beyond schema: e.g., projectName is 'used in prompt formatting', predefinedOptions are optional. This adds meaningful value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a question to the user via a pop-up command prompt, with explicit purpose of clarifying requirements, confirming plans, or resolving ambiguity. It distinguishes from sibling tools like ask_intensive_chat by specifying a pop-up prompt rather than a chat message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'whenToUseThisTool' section provides exhaustive scenarios, and 'bestPractices' explicitly instructs not to use the tool when another tool can answer the question, offering clear alternatives. This provides excellent decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_intensive_chatA
| Name | Required | Description | Default |
|---|---|---|---|
| sessionTitle | Yes | Title for the intensive chat session |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behaviors: opens persistent console window, returns session ID, must be closed, configurable timeout, maintains chat history, and warns against unnecessary questions. This is comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with separate sections but contains some redundancy (e.g., 'Highly recommended' and 'Very useful' are similar). It is thorough but could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter list, no output schema, and missing annotations, the description covers all necessary aspects: purpose, usage, important notes, parameters, examples, and best practices. It feels complete for the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (sessionTitle) with 100% schema coverage. The description adds context that the title appears at the top of the console, which goes beyond the schema's description. A score of 4 is appropriate for the added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it starts an intensive chat session for gathering multiple answers quickly. It uses specific verbs like 'start', 'gather', 'opens', and distinguishes from sibling tools such as ask_intensive_chat and stop_intensive_chat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit when-to-use scenarios (e.g., collecting series of quick answers, multi-step processes) and when-not-to-use (e.g., prefer other tools if they can answer). It also provides important instructions on using ask_intensive_chat and closing with stop_intensive_chat in the same response.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_intensive_chatA
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | ID of the intensive chat session to stop |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description carries full burden and discloses key behaviors: closes console window, frees system resources, marks session complete. It omits potential side effects like idempotency or error handling, but the core behavioral traits are well covered for a termination action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Highly structured with clear sections (description, importantNotes, whenToUseThisTool, etc.). Every sentence adds value, and the core purpose is front-loaded. No unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter and no output schema, the description is fully complete. It covers what it does, when to use, how to use (with example), and what to expect. No gaps remain for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'sessionId', with the schema providing a description. The description repeats the same parameter info without adding new semantic meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Stop and close an active intensive chat session' with a specific verb and resource. It clearly distinguishes from siblings like 'start_intensive_chat' and 'ask_intensive_chat' by noting it must be called after all questions have been asked.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use conditions: after completing 'ask_intensive_chat', when the multi-step process is complete, and as the final action. Also includes a strong directive that it 'must be called' and 'should always be called', leaving no ambiguity about its role in the workflow.
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.
5 tool updates
v1.6.0- Removed
ask_intensive_chat - Removed
message_complete_notification - Removed
request_user_input - Removed
start_intensive_chat - Removed
stop_intensive_chat
5 tool updates
v1.10.0- Added
ask_intensive_chat - Added
message_complete_notification - Added
request_user_input - Added
start_intensive_chat - Added
stop_intensive_chat
5 tool updates
v1.10.1- Removed
ask_intensive_chat - Removed
message_complete_notification - Removed
request_user_input - Removed
start_intensive_chat - Removed
stop_intensive_chat
5 tool updates
- First observed
ask_intensive_chat - First observed
message_complete_notification - First observed
request_user_input - First observed
start_intensive_chat - First observed
stop_intensive_chat
TDQS
Scored across 5 tools
Each tool has a clear, distinct purpose: start, ask, and stop intensive chat sessions; request general user input; and notify completion. No overlap, as ask_intensive_chat is contextual within an active session, while request_user_input is standalone. The descriptions further clarify their distinct use cases.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., start_intensive_chat, request_user_input). The naming is predictable and logically groups related actions (start/ask/stop for intensive chat). No mixing of conventions.
With 5 tools, the server is well-scoped for its purpose of managing interactive user input and notifications. Each tool is necessary and there is no bloat. This count is ideal for such a focused domain.
The tool set covers the full lifecycle of an intensive chat session (start, ask questions, stop), plus a general user input tool and a completion notification. There are no obvious gaps for the stated purpose of gathering user input and signaling completion.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for AI dialogue using various LLM models via AceDataCloud
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Related MCP Servers
- AlicenseBqualityDmaintenanceA secure terminal execution server that enables controlled command execution with security features and resource limits via the Model Context Protocol (MCP).130 npm11MIT
- AlicenseAqualityDmaintenanceA MCP server that enables human-in-the-loop workflow in AI-assisted development tools by allowing users to run commands, view their output, and provide textual feedback directly to the AI assistant.11,708MIT
- AlicenseAqualityDmaintenanceA Node.js/TypeScript MCP server that facilitates interactive communication between LLMs and users, allowing AI assistants to request user input, display notifications, and manage command-line chat sessions.567 npm1MIT
- AlicenseNot gradedqualityCmaintenanceA cross-platform MCP server that provides native popup windows for AI agents to gather user feedback, input, and safety confirmations. It enables agents to present interactive questionnaires and secure confirmation prompts for sensitive operations like file deletion or code execution.13MIT



