Skip to main content
Glama
gaia-research

community-bot

Official
README.md
# MCP-Enabled Community Assistant Bot

An MCP-powered Discord Bot that interfaces with the Gaia Skill Tree canonical registry (`gaia.json`).

## Architecture

This package implements a modular client-server structure:
1. **MCP Server** (`src/mcp-server.ts`): Wraps `/graph/gaia.json` as a Model Context Protocol tool provider, exposing:
   - `search_skills`: Searches skills by name/description.
   - `get_skill_by_name`: Returns full metadata and evidence for a specific skill.
   - `list_badges`: Lists badge tiers and criteria.
   - `verify_evidence`: Audits/verifies evidence chains for a skill.
2. **Discord Bot** (`src/discord-bot.ts`): Acts as the MCP client, spawning the MCP server as a subprocess and mapping Discord slash commands (`/gaia <subcommand>`) to tool execution.

## Getting Started

### Local Setup

1. Copy `.env.example` to `.env` and fill in the variables:
   ```bash
   cp .env.example .env
   ```
   Required fields:
   - `DISCORD_TOKEN`: Your Discord Bot token.
   - `DISCORD_CLIENT_ID`: Your Discord application's client ID.
   - `GAIA_GRAPH_URL`: Optional (defaults to `https://gaia.tiongson.co/graph/gaia.json`).

2. Install dependencies:
   ```bash
   npm install
   ```

3. Build and compile:
   ```bash
   npm run build
   ```

4. Start the Discord bot:
   ```bash
   npm start
   ```

### Docker Setup

You can build and deploy the bot containerized with Docker:
```bash
# Build & start container
docker compose up -d --build
```
Ensure that the `.env` file is present in this directory before running docker compose.