MCP ExplorerExplorer

Adonis Mcp

@7noheon a year ago
5 MIT
FreeCommunity
AI Systems
#adonisjs#mcp-server#modelcontextprotocol
An AdonisJS package for building remote MCP servers

Overview

What is Adonis Mcp

adonis-mcp is a package for the AdonisJS framework that enables the development of remote MCP servers utilizing the Model Context Protocol (MCP) and Server-Sent Events (SSE).

Use cases

Use cases for adonis-mcp include building interactive applications that require real-time updates, creating tools for data processing, and developing systems that need to handle user prompts and responses dynamically.

How to use

To use adonis-mcp, install it via the command ‘node ace add @7nohe/adonis-mcp’, configure the generated ‘config/mcp.ts’ file, register routes in ‘start/routes.ts’, and start the server using ‘npm run dev’.

Key features

Key features of adonis-mcp include easy integration with AdonisJS, support for Server-Sent Events (SSE), customizable server settings, and the ability to define tools and prompts for resource handling.

Where to use

adonis-mcp can be used in web applications that require real-time data updates, such as chat applications, live notifications, or any system that benefits from a remote server-client communication model.

Content

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:

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:

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:

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:

npm run dev

Debugging

Using Configuration File

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

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

Using Inspector

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

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.

License

This project is provided under the MIT License.

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers