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
- Host: GitHub
- URL: https://github.com/7nohe/adonis-mcp
- Owner: 7nohe
- License: mit
- Created: 2025-03-30T13:25:30.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-21T13:49:11.000Z (12 months ago)
- Last Synced: 2025-12-13T03:50:05.093Z (7 months ago)
- Topics: adonisjs, mcp-server, modelcontextprotocol
- Language: TypeScript
- Homepage:
- Size: 24.4 KB
- Stars: 9
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-mcp-servers - **adonis-mcp** - An AdonisJS package for building remote MCP servers `typescript` `adonisjs` `mcp-server` `modelcontextprotocol` `mcp` `npm install 7nohe/adonis-mcp` (🌐 Web Development)
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).