{"id":27847931,"url":"https://github.com/ttommyth/interactive-mcp","last_synced_at":"2025-05-03T16:11:54.824Z","repository":{"id":290040775,"uuid":"972684477","full_name":"ttommyth/interactive-mcp","owner":"ttommyth","description":"Interactive MCP is an AI‑enhanced MCP notification system that delivers real‑time chat completion alerts and gathers user feedback on the fly. Boost your workflow with instant, actionable notifications and seamless interactive feedback","archived":false,"fork":false,"pushed_at":"2025-04-26T14:19:04.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-26T14:25:44.269Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ttommyth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-25T13:38:04.000Z","updated_at":"2025-04-26T14:10:56.000Z","dependencies_parsed_at":"2025-04-26T14:26:01.000Z","dependency_job_id":"a22881e0-3c42-4097-99df-6ba3328ebb47","html_url":"https://github.com/ttommyth/interactive-mcp","commit_stats":null,"previous_names":["ttommyth/interactive-mcp"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttommyth%2Finteractive-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttommyth%2Finteractive-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttommyth%2Finteractive-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttommyth%2Finteractive-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ttommyth","download_url":"https://codeload.github.com/ttommyth/interactive-mcp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252215166,"owners_count":21712919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-05-03T16:11:53.037Z","updated_at":"2025-05-03T16:11:54.812Z","avatar_url":"https://github.com/ttommyth.png","language":"TypeScript","funding_links":[],"categories":["AI Agents","AI Integration MCP Servers","サーバー実装","MCP Frameworks and libraries","📚 Projects (1974 total)","Community Servers","MCP 服务器精选列表","Other Tools and Integrations","APIs and HTTP Requests","TypeScript","MCP Servers \u0026 Integrations","📦 Other","MCP Servers \u0026 Protocol"],"sub_categories":["Human-in-the-Loop","🛠️ \u003ca name=\"other-tools-and-integrations\"\u003e\u003c/a\u003eその他のツールと統合","TypeScript","MCP Servers","🛠️ 其他实用工具与集成","How to Submit","Other IDEs"],"readme":"# interactive-mcp\n\n[![npm version](https://img.shields.io/npm/v/interactive-mcp)](https://www.npmjs.com/package/interactive-mcp) [![npm downloads](https://img.shields.io/npm/dm/interactive-mcp)](https://www.npmjs.com/package/interactive-mcp) [![smithery badge](https://smithery.ai/badge/@ttommyth/interactive-mcp)](https://smithery.ai/server/@ttommyth/interactive-mcp) [![GitHub license](https://img.shields.io/github/license/ttommyth/interactive-mcp)](https://github.com/ttommyth/interactive-mcp/blob/main/LICENSE) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![Platforms](https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-blue)](https://github.com/ttommyth/interactive-mcp) [![GitHub last commit](https://img.shields.io/github/last-commit/ttommyth/interactive-mcp)](https://github.com/ttommyth/interactive-mcp/commits/main)\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://glama.ai/mcp/servers/@ttommyth/interactive-mcp\"\u003e\n  \u003cimg width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/@ttommyth/interactive-mcp/badge\" alt=\"interactive-mcp MCP server\" /\u003e\n\u003c/a\u003e\n\u003c/div\u003e\n\nA MCP Server implemented in Node.js/TypeScript, facilitating interactive communication between LLMs and users. **Note:** This server is designed to run locally alongside the MCP client (e.g., Claude Desktop, VS Code), as it needs direct access to the user's operating system to display notifications and command-line prompts.\n\n_(Note: This project is in its early stages.)_\n\n**Want a quick overview?** Check out the introductory blog post: [Stop Your AI Assistant From Guessing — Introducing interactive-mcp](https://medium.com/@ttommyth/stop-your-ai-assistant-from-guessing-introducing-interactive-mcp-b42ac6d9b0e2)\n\n|                                                   Demo Video                                                    |\n| :-------------------------------------------------------------------------------------------------------------: |\n| [![Interactive Demo Video](https://img.youtube.com/vi/ebwDZdfgSHo/hqdefault.jpg)](https://youtu.be/ebwDZdfgSHo) |\n\n## Tools\n\nThis server exposes the following tools via the Model Context Protocol (MCP):\n\n- `request_user_input`: Asks the user a question and returns their answer. Can display predefined options.\n- `message_complete_notification`: Sends a simple OS notification.\n- `start_intensive_chat`: Initiates a persistent command-line chat session.\n- `ask_intensive_chat`: Asks a question within an active intensive chat session.\n- `stop_intensive_chat`: Closes an active intensive chat session.\n\n## Demo\n\nHere are demonstrations of the interactive features:\n\n|                      Normal Question                       |                       Completion Notification                       |\n| :--------------------------------------------------------: | :-----------------------------------------------------------------: |\n| ![Normal Question Demo](./docs/assets/normal-question.gif) | ![Completion Notification Demo](./docs/assets/end-notification.gif) |\n\n|                         Intensive Chat Start                         |                        Intensive Chat End                        |\n| :------------------------------------------------------------------: | :--------------------------------------------------------------: |\n| ![Start Intensive Chat Demo](./docs/assets/start-intensive-chat.gif) | ![End Intensive Chat Demo](./docs/assets/end-intensive-chat.gif) |\n\n## Usage Scenarios\n\nThis server is ideal for scenarios where an LLM needs to interact directly with the user on their local machine, such as:\n\n- Interactive setup or configuration processes.\n- Gathering feedback during code generation or modification.\n- Clarifying instructions or confirming actions in pair programming.\n- Any workflow requiring user input or confirmation during LLM operation.\n\n## Client Configuration\n\nThis section explains how to configure MCP clients to use the `interactive-mcp` server.\n\nBy default, user prompts will time out after 30 seconds. You can customize server options like timeout or disabled tools by adding command-line flags directly to the `args` array when configuring your client.\n\nPlease make sure you have the `npx` command available.\n\n### Usage with Claude Desktop / Cursor\n\nAdd the following minimal configuration to your `claude_desktop_config.json` (Claude Desktop) or `mcp.json` (Cursor):\n\n```json\n{\n  \"mcpServers\": {\n    \"interactive\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"interactive-mcp\"]\n    }\n  }\n}\n```\n\n**Example with Custom Timeout (30s):**\n\n```json\n{\n  \"mcpServers\": {\n    \"interactive\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"interactive-mcp\", \"-t\", \"30\"]\n    }\n  }\n}\n```\n\n### Usage with VS Code\n\nAdd the following minimal configuration to your User Settings (JSON) file or `.vscode/mcp.json`:\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"interactive-mcp\": {\n        \"command\": \"npx\",\n        \"args\": [\"-y\", \"interactive-mcp\"]\n      }\n    }\n  }\n}\n```\n\n#### macOS Recommendations\n\nFor a smoother experience on macOS using the default `Terminal.app`, consider this profile setting:\n\n- **(Shell Tab):** Under **\"When the shell exits\"** (**Terminal \u003e Settings \u003e Profiles \u003e _[Your Profile]_ \u003e Shell**), select **\"Close if the shell exited cleanly\"** or **\"Close the window\"**. This helps manage windows when the MCP server starts and stops.\n\n## Development Setup\n\nThis section is primarily for developers looking to modify or contribute to the server. If you just want to _use_ the server with an MCP client, see the \"Client Configuration\" section above.\n\n### Prerequisites\n\n- **Node.js:** Check `package.json` for version compatibility.\n- **pnpm:** Used for package management. Install via `npm install -g pnpm` after installing Node.js.\n\n### Installation (Developers)\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/ttommyth/interactive-mcp.git\n   cd interactive-mcp\n   ```\n\n2. Install dependencies:\n\n   ```bash\n   pnpm install\n   ```\n\n### Running the Application (Developers)\n\n```bash\npnpm start\n```\n\n#### Command-Line Options\n\nThe `interactive-mcp` server accepts the following command-line options. These should typically be configured in your MCP client's JSON settings by adding them directly to the `args` array (see \"Client Configuration\" examples).\n\n| Option            | Alias | Description                                                                                                                                                                                           |\n| ----------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `--timeout`       | `-t`  | Sets the default timeout (in seconds) for user input prompts. Defaults to 30 seconds.                                                                                                                 |\n| `--disable-tools` | `-d`  | Disables specific tools or groups (comma-separated list). Prevents the server from advertising or registering them. Options: `request_user_input`, `message_complete_notification`, `intensive_chat`. |\n\n**Example:** Setting multiple options in the client config `args` array:\n\n```jsonc\n// Example combining options in client config's \"args\":\n\"args\": [\n  \"-y\", \"interactive-mcp\",\n  \"-t\", \"30\", // Set timeout to 30 seconds\n  \"--disable-tools\", \"message_complete_notification,intensive_chat\" // Disable notifications and intensive chat\n]\n```\n\n## Development Commands\n\n- **Build:** `pnpm build`\n- **Lint:** `pnpm lint`\n- **Format:** `pnpm format`\n\n## Guiding Principles for Interaction\n\nWhen interacting with this MCP server (e.g., as an LLM client), please adhere to the following principles to ensure clarity and reduce unexpected changes:\n\n- **Prioritize Interaction:** Utilize the provided MCP tools (`request_user_input`, `start_intensive_chat`, etc.) frequently to engage with the user.\n- **Seek Clarification:** If requirements, instructions, or context are unclear, **always** ask clarifying questions before proceeding. Do not make assumptions.\n- **Confirm Actions:** Before performing significant actions (like modifying files, running complex commands, or making architectural decisions), confirm the plan with the user.\n- **Provide Options:** Whenever possible, present the user with predefined options through the MCP tools to facilitate quick decisions.\n\nYou can provide these instructions to an LLM client like this:\n\n```markdown\n# Interaction\n\n- Please use the interactive MCP tools\n- Please provide options to interactive MCP if possible\n\n# Reduce Unexpected Changes\n\n- Do not make assumption.\n- Ask more questions before executing, until you think the requirement is clear enough.\n```\n\n## Contributing\n\nContributions are welcome! Please follow standard development practices. (Further details can be added later).\n\n## License\n\nMIT (See `LICENSE` file for details - if applicable, or specify license directly).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttommyth%2Finteractive-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fttommyth%2Finteractive-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttommyth%2Finteractive-mcp/lists"}