0.0
The project is in a healthy, maintained state
A minimal MCP (Model Context Protocol) server that exposes the agents an Anychat workspace owns as callable tools over stdio — list them, read one, bring a new one into being, change one, or retire one. Designed for clients that speak MCP (ZCode, Claude Code, and the like). The tool shell (name, schema, call) lives here, wrapping ask-anychat; the API client itself is that gem's.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 5.25
~> 13.0

Runtime

>= 0.2.1
>= 0.6.1
 Project Readme

Ask::AnyChat::MCP

MCP server for Anychat, for the ask-rb ecosystem.

Exposes the agents a workspace owns as callable tools over stdio, so a client that speaks the Model Context Protocol can create and manage them without knowing anything about the API underneath. The tool shell lives here; the API client is ask-anychat.

Installation

gem "ask-anychat-mcp"

Usage

Register the executable with an MCP client:

{
  "mcp": {
    "servers": {
      "ask-anychat-mcp": {
        "type": "stdio",
        "command": "ask-anychat-mcp",
        "env": { "ANYCHAT_TOKEN": "..." }
      }
    }
  }
}

Set ANYCHAT_BASE_URL too when pointing at a deployment that is not the hosted app. Mint a token in Anychat under Settings → API tokens.

Tools

Tool What it does
ask_anychat_list_agents Every agent a workspace owns, with the address each answers on
ask_anychat_get_agent One agent, by the address it answers on
ask_anychat_create_agent Bring a new agent into being — a name is all it takes
ask_anychat_update_agent Change one; only the arguments you pass are written
ask_anychat_delete_agent Retire one; its address becomes free

Every tool names a workspace, because a workspace is what a token reaches.

Names are prefixed ask_anychat_ to keep them from colliding with a client's own tools of the same name, as the other ask MCP servers are.

What comes back

A refusal is text the model can act on rather than an exception that ends the conversation, and it carries the sentence the API wrote:

Error: No agent at /anywaye/nope.

The same is true of an argument that was missing or misspelled — a model that typed name where display_name was wanted is told so, rather than having the value quietly dropped.

Contributing

Run bin/setup once, then bundle exec rake test. Until ask-anychat and ask-mcp are released, the Gemfile consumes both from the working copies alongside this one.

License

MIT.