An open API service indexing awesome lists of open source software.

https://github.com/7nohe/adonis-mcp

An AdonisJS package for building remote MCP servers
https://github.com/7nohe/adonis-mcp

adonisjs mcp-server modelcontextprotocol

Last synced: 4 months ago
JSON representation

An AdonisJS package for building remote MCP servers

Awesome Lists containing this project

README

          

# 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](./LICENSE.md).