About MCP Chat Adapter
MCP Chat Adapter is a server that lets MCP clients use chat completion from OpenAI-compatible APIs. It manages persistent conversations and configurable model settings, and supports chat models rather than text completions.
Key features
- 01OpenAI-compatible chat completion
- 02Create and manage conversations
- 03Persist conversations in local storage
- 04Configure model parameters and defaults
- 05Handle errors and timeouts
Use cases
- 01Start a separate conversation with another model
- 02Resume a saved conversation in a new context
- 03Review or manage stored conversations
MCP support
The server exposes chat completion and conversation-management tools over MCP, including create, chat, list, retrieve, and delete operations.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Chat Adapter
An MCP (Model Context Protocol) server that provides a clean interface for LLMs to use chat completion capabilities through the MCP protocol. This server acts as a bridge between an LLM client and any OpenAI-compatible API. The primary use case is for chat models, as the server does not provide support for text completions.
Overview
The OpenAI Chat MCP Server implements the Model Context Protocol (MCP), allowing language models to interact with OpenAI's chat completion API in a standardized way. It enables seamless conversations between users and language models while handling the complexities of API interactions, conversation management, and state persistence.
Features
- Built with FastMCP for robust and clean implementation
- Provides tools for conversation management and chat completion
- Proper error handling and timeouts
- Supports conversation persistence with local storage
- Easy setup with minimal configuration
- Configurable model parameters and defaults
- Compatible with OpenAI and OpenAI-compatible APIs
Typical Workflow
The idea is that you can have Claude spin off and maintain multiple conversations with other models in the background. All conversations are stored in the CONVERSATION_DIR directory, which you should set in the env section of your mcp.json file.
It is possible to tell Claude either to create a new conversation, or to continue an existing one (identified by the integer conversation_id). You can continue with the old conversation even if you are starting fresh in a new context, although in that case you may want to tell Claude to read the old conversation before continuing using the get_conversation tool.
Note that you can also edit the conversations in the CONVERSATION_DIR directory manually. In this case, you may need to restart the server to see the changes.
Configuration
Required Environment Variables
These environment variables must be set for the server to function:
OPENAI_API_KEY=your-api-key # Your API key for OpenAI or compatible service
OPENAI_API_BASE=https://openrouter.ai/api/v1 # The base URL for the API (can be changed for compatible services)
You should also set the CONVERSATION_DIR environment variable to the directory where you want to store the conversation data. Use an absolute path.
Optional Environment Variables
The following environment variables are optional and have default values:
# Model Configuration
DEFAULT_MODEL=google/gemini-2.0-flash-001 # Default model to use if not specified
DEFAULT_SYSTEM_PROMPT="You are an unhelpful assistant." # Default system prompt
DEFAULT_MAX_TOKENS=50000 # Default maximum tokens for completion
DEFAULT_TEMPERATURE=0.7 # Default temperature setting
DEFAULT_TOP_P=1.0 # Default top_p setting
DEFAULT_FREQUENCY_PENALTY=0.0 # Default frequency penalty
DEFAULT_PRESENCE_PENALTY=0.0 # Default presence penalty
# Storage Configuration
CONVERSATION_DIR=./convos # Directory to store conversation data
MAX_CONVERSATIONS=1000 # Maximum number of conversations to store
Integrating with Claude UI etc.
Your mcp.json file should look like this:
{
"mcpServers": {
"chat-adapter": {
"command": "npx",
"args": [
"-y",
"mcp-chat-adapter"
],
"env": {
"CONVERSATION_DIR": "/Users/aiamblichus/mcp-convos",
"OPENAI_API_KEY": "xoxoxo",
"OPENAI_API_BASE": "https://openrouter.ai/api/v1",
"DEFAULT_MODEL": "qwen/qwq-32b"
}
}
}
}
The latest version of the package is published to npm here.
Available Tools
1. Create Conversation
Creates a new chat conversation.
{
"name": "create_conversation",
"arguments": {
"model": "gpt-4",
"system_prompt": "You are a helpful assistant.",
"parameters": {
"temperature": 0.7,
"max_tokens": 1000
},
"metadata": {
"title": "My conversation",
"tags": ["important", "work"]
}
}
}
2. Chat
Adds a message to a conversation and gets a response.
{
"name": "chat",
"arguments": {
"conversation_id": "123",
"message": "Hello, how are you?",
"parameters": {
"temperature": 0.8
}
}
}
3. List Conversations
Gets a list of available conversations.
{
"name": "list_conversations",
"arguments": {
"filter": {
"tags": ["important"]
},
"limit": 10,
"offset": 0
}
}
4. Get Conversation
Gets the full content of a conversation.
{
"name": "get_conversation",
"arguments": {
"conversation_id": "123"
}
}
5. Delete Conversation
Deletes a conversation.
{
"name": "delete_conversation",
"arguments": {
"conversation_id": "123"
}
}
Development
Installation
# Clone the repository
git clone https://github.com/aiamblichus/mcp-chat-adapter.git
cd mcp-chat-adapter
# Install dependencies
yarn install
# Build the project
yarn build
Running the server
For FastMCP cli run:
yarn cli
For FastMCP inspect run:
yarn inspect
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.