Skip to main content
Glama
README.md
# Brightsy MCP Server

This is a Model Context Protocol (MCP) server that connects to an Brightsy AI agent.

## Installation

```bash
npm install
```

## Usage

To start the server:

```bash
npm start -- --agent-id=<your-agent-id> --api-key=<your-api-key>
```

Or with positional arguments:

```bash
npm start -- <your-agent-id> <your-api-key> [tool-name] [message]
```

You can also provide an initial message to be sent to the agent:

```bash
npm start -- --agent-id=<your-agent-id> --api-key=<your-api-key> --message="Hello, agent!"
```

### Customizing the Tool Name

By default, the MCP server registers a tool named "brightsy". You can customize this name using the `--tool-name` parameter:

```bash
npm start -- --agent-id=<your-agent-id> --api-key=<your-api-key> --tool-name=<custom-tool-name>
```

You can also set the tool name as the third positional argument:

```bash
npm start -- <your-agent-id> <your-api-key> <custom-tool-name>
```

Or using the `BRIGHTSY_TOOL_NAME` environment variable:

```bash
export BRIGHTSY_TOOL_NAME=custom-tool-name
npm start -- --agent-id=<your-agent-id> --api-key=<your-api-key>
```

### Environment Variables

The following environment variables can be used to configure the server:

- `BRIGHTSY_AGENT_ID`: The agent ID to use (alternative to command line argument)
- `BRIGHTSY_API_KEY`: The API key to use (alternative to command line argument)
- `BRIGHTSY_TOOL_NAME`: The tool name to register (default: "brightsy")

## Testing the agent_proxy Tool

The agent_proxy tool allows you to proxy requests to an Brightsy AI agent. To test this tool, you can use the provided test scripts.

### Prerequisites

Before running the tests, set the following environment variables:

```bash
export AGENT_ID=your-agent-id
export API_KEY=your-api-key
# Optional: customize the tool name for testing
export TOOL_NAME=custom-tool-name
```

Alternatively, you can pass these values as command-line arguments:

```bash
# Using named arguments
npm run test:cli -- --agent-id=your-agent-id --api-key=your-api-key --tool-name=custom-tool-name

# Using positional arguments
npm run test:cli -- your-agent-id your-api-key custom-tool-name
```

### Running the Tests

To run all tests:

```bash
npm test
```

To run specific tests:

```bash
# Test using the command line interface
npm run test:cli

# Test using the direct MCP protocol
npm run test:direct
```

### Test Scripts

1. **Command Line Test** (`test-agent-proxy.ts`): Tests the agent_proxy tool by running the MCP server with a test message.

2. **Direct MCP Protocol Test** (`test-direct.ts`): Tests the agent_proxy tool by sending a properly formatted MCP request directly to the server.

## How the Tool Works

The MCP server registers a tool (named "brightsy" by default) that forwards requests to an OpenAI-compatible AI agent and returns the response. It takes a `messages` parameter, which is an array of message objects with `role` and `content` properties.

Example usage in an MCP client:

```javascript
// Using the default tool name
const response = await client.callTool("brightsy", {
  messages: [
    {
      role: "user",
      content: "Hello, can you help me with a simple task?"
    }
  ]
});

// Or using a custom tool name if configured
const response = await client.callTool("custom-tool-name", {
  messages: [
    {
      role: "user",
      content: "Hello, can you help me with a simple task?"
    }
  ]
});
```

The response will contain the agent's reply in the `content` field.

TDQS

B3/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'brightsy' has a clear and distinct purpose as a proxy to the Brightsy AI agent.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare against. The name 'brightsy' is straightforward and matches the server's purpose.

Tool Count2/5

A single tool is generally too few for most server purposes, as it offers minimal functionality and can limit agent capabilities. While it might suffice for a simple proxy, it feels thin and under-scoped for typical MCP server expectations.

Completeness3/5

The tool surface is incomplete for a general-purpose AI agent proxy, lacking operations like configuration, status checks, or specific request types. However, the single tool covers the basic proxy function, leaving notable gaps but not entirely failing.

Maintenance

ActivityInactive
ResponsivenessNo issues