---
slug: "adonis"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/7nohe/adonis-mcp@main/README.md"
repo: "https://github.com/7nohe/adonis-mcp"
source_file: "README.md"
branch: "main"
---
# Adonis MCP

Adonis MCP is a package designed for the AdonisJS framework that provides support for the Model Context Protocol (MCP). With this package, you can easily build remote MCP servers using Server-Sent Events (SSE).

## Installation

Run the following command to install the package:

```bash
node ace add @7nohe/adonis-mcp
```

## Configuration

After installation, a `config/mcp.ts` file will be generated. Edit this file to customize the MCP server settings.

Example:

```ts
import { defineConfig } from '@7nohe/adonis-mcp'

export default defineConfig({
  ssePath: '/sse',
  messagesPath: '/messages',
  serverOptions: {
    name: 'mymcp',
    version: '0.0.1',
  },
})
```

## Usage

### Registering Routes

You can use the `registerRoutes` method in `start/routes.ts` to define tools and prompts. Below is an example:

```ts
import mcp from '@7nohe/adonis-mcp/services/main'
import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js'
import { z } from 'zod'

await mcp.registerRoutes((server) => {
  server.resource(
    'echo',
    new ResourceTemplate('echo://{message}', { list: undefined }),
    async (uri, { message }) => ({
      contents: [
        {
          uri: uri.href,
          text: `Resource echo: ${message}`,
        },
      ],
    })
  )

  server.tool('echo', { message: z.string() }, async ({ message }) => ({
    content: [{ type: 'text', text: `Tool echo: ${message}` }],
  }))

  server.prompt('echo', { message: z.string() }, ({ message }) => ({
    messages: [
      {
        role: 'user',
        content: {
          type: 'text',
          text: `Please process this message: ${message}`,
        },
      },
    ],
  }))
})
```

### Starting the Server

After defining the routes, start the MCP server by running the following command:

```bash
npm run dev
```

## Debugging

### Using Configuration File

To debug, edit the MCP server configuration file (e.g., for Claude Desktop or Cursor) as follows:

```json
{
  "mcpServers": {
    "mymcp": {
      "url": "http://localhost:3333/sse"
    }
  }
}
```

### Using Inspector

Another debugging method is to use the Inspector. Start it with the following command:

```bash
npx @modelcontextprotocol/inspector
```

1. Set the Transport Type to `SSE`.
2. Enter the URL `http://localhost:3333/sse`.
3. Click the `Connect` button.
4. Confirm that the status changes to `Connected`.

For more details, refer to the [Inspector Documentation](https://modelcontextprotocol.io/docs/tools/inspector).

## License

This project is provided under the [MIT License](https://github.com/7nohe/adonis-mcp/blob/HEAD/LICENSE.md).
