Context Bank MCP is a project using the Model Context Protocol (MCP) to create an interface for querying the AtherOS knowledge base through an API. This project builds an MCP server capable of interacting with the Onyx API to create chat sessions and send queries to the knowledge base.
- Create new chat sessions to query the knowledge base
- Send messages to chat sessions to receive responses from the knowledge base
- Format and display results from the Onyx API
- TypeScript
- Node.js
- Model Context Protocol (MCP) SDK
- Zod for data validation
- Axios for HTTP requests
# Install dependencies
npm install
# Compile source code
npm run build
The project uses environment variables to connect to the Onyx API. Follow these steps to configure your environment:
Run the setup script to configure your environment interactively:
npm run setup
This script will:
- Create a
.env
file if it doesn't exist - Prompt you for your AtherOS API key
- Allow you to customize the API base URL
- Set default values for other configuration options
- Copy the example environment file to create your own:
cp .env.example .env
- Edit the
.env
file with your specific configuration:
# AtherOS API Configuration
ONYX_API_KEY=your_api_key_here
ONYX_API_BASE=http://your_api_base_url:port
# Server Configuration
PORT=3000
NODE_ENV=development
# Optional: Logging Configuration
LOG_LEVEL=info
-
Required Environment Variables:
ONYX_API_KEY
: Your AtherOS API keyONYX_API_BASE
: Base URL for the AtherOS API (e.g., "http://172.30.22.52:3000")
-
Optional Environment Variables:
PORT
: Port number for the server (default: 3000)NODE_ENV
: Environment mode (development, production, test)LOG_LEVEL
: Logging level (info, debug, error, warn)
After compilation, you can use the command line tool:
# Direct usage
./build/index.js
# Or through npm
npm start
The project provides two main MCP tools:
Creates a new chat session to query the knowledge base.
Parameters:
persona_id
(default: 0): User IDdescription
(default: ""): Chat session description
Sends a message to the chat session to query the AtherOS knowledge base.
Parameters:
chat_session_id
: Chat session IDmessage
: Message contentparent_message_id
: Parent message ID (can be null)
Responses from knowledge base queries include:
- Message ID
- Message content
- Rephrased query (if available)
- Information about top source documents (if available):
- Document name
- Relevance score
- Link to the document
The project is organized with a simple structure:
src/index.ts
: Main entry point of the application, defines the MCP tools and connection logic- Uses the stdio protocol to communicate with the MCP server
# Compile and view changes
npm run build
# Run in development mode
npm run dev
ISC