MCP Chatwork Server
This is a Model Context Protocol (MCP) server for Chatwork. It allows AI agents to read context from Chatwork rooms and messages.
Features
List Rooms: Retrieve a list of rooms the user is participating in.
List Messages: Fetch messages from a specific room.
Send Message: Send a message to a specific room.
Get Room Members: Get the list of members in a room.
Create Task: Create a task in a room.
Get My Tasks: Get the list of tasks assigned to the current bot account.
Delete Message: Delete a message from a room.
Complete Task: Mark a task as done.
Leave Room: Leave a room.
Prerequisites
Node.js (v18 or higher)
A Chatwork API Token
Installation
Clone the repository:
git clone git@github.com:vfa-khuongdv/mcp-chatwork.git cd mcp-chatworkInstall dependencies:
npm installBuild the server:
npm run build
Configuration
The server requires the CHATWORK_API_TOKEN environment variable to be set.
Usage
With Claude Desktop (or other MCP Clients)
Add the following configuration to your MCP client settings (e.g., claude_desktop_config.json):
or
Manual Testing
You can run the server directly via stdio (though it is designed to communicate with an MCP client):
Tools
list_rooms
Returns a list of rooms with details like room ID, name, unread count, etc.
list_messages
Returns messages for a given room.
Arguments:
room_id(number): The ID of the room.force(boolean): Iftrue, fetches the latest 100 messages regardless of read status.
send_message
Allows the agent to send messages to a room.
Arguments:
room_id(number): The ID of the room.body(string): The message content.
get_room_members
Get the list of members in a room.
Arguments:
room_id(number): The ID of the room.
create_task
Assign a task to a user in a Chatwork room.
Arguments:
room_id(number): The ID of the room.body(string): The task description.to_ids(array of numbers): List of user IDs to assign the task to.limit(string, optional): Due date in unix time or "YYYY-MM-DD" format.
get_my_tasks
List tasks assigned to the current bot account.
Arguments:
assigned_by_account_id(number, optional): Filter by user ID who assigned the task.status(string, optional): Task status ("open", "done"). Defaults to "open".
delete_message
Delete a message from a room.
Arguments:
room_id(number): The ID of the room.message_id(string): The ID of the message to delete.
complete_task
Mark a task as done.
Arguments:
room_id(number): The ID of the room.task_id(string): The ID of the task.
leave_room
Leave a room.
Arguments:
room_id(number): The ID of the room.
License
MIT