UNPKG

@lune-inc/mcp

Version:

A Model Context Protocol (MCP) server for Lune that provides up-to-date technical context

138 lines (90 loc) 4.52 kB
# Lune Model Context Protocol The Lune [Model Context Protocol](https://modelcontextprotocol.com/) server allows you to integrate with individual [Lunes](https://www.lune.dev/lunes) (knowledge bases composed of documentation, code repositories, forum discussions, etc.) through function calling. Lunes are currently to assist agents and LLMs with codegen and are not for interfacing with their respective APIs. Please refer to other amazing MCP servers, like [Stripe's](https://github.com/stripe/agent-toolkit/tree/main/modelcontextprotocol) for that. ## Setup To run a Lune MCP server using npx, first go to the [Lunes](https://www.lune.dev/lunes) and find click "Use MCP" for the Lunes you want to use which will copy the command to your clipboard like below. Make sure to replace `YOUR_LUNE_API_KEY` with your actual Lune API key which you can grab at [https://www.lune.dev/profile](https://www.lune.dev/profile). ```bash # Replace YOUR_LUNE_API_KEY with your actual Lune API key npx -y @lune-inc/mcp --api-key=YOUR_LUNE_API_KEY --lune-name=LUNE_NAME --lune-id=LUNE_ID ``` Example with the Lune on Model Context Protocol Docs, check out the Lune here: [https://www.lune.dev/lunes/v-model-context-protocol-mcp](https://www.lune.dev/lunes/v-model-context-protocol-mcp): ```bash npx -y @lune-inc/mcp --api-key=YOUR_LUNE_API_KEY --lune-name=MCP --lune-id=c2d40d37-9432-44e4-bc78-88b3e251bde1 ``` ## Transport Options The Lune MCP server supports two transport methods: ### 1. Standard Input/Output (stdio) - Default This is the default transport method and is used when no transport is specified: ```bash npx -y @lune-inc/mcp --api-key=YOUR_LUNE_API_KEY --lune-name=LUNE_NAME --lune-id=LUNE_ID ``` ### 2. Server-Sent Events (SSE) To use SSE transport, specify the `--transport=sse` flag and optionally a port (default is 3000): ```bash npx -y @lune-inc/mcp --api-key=YOUR_LUNE_API_KEY --lune-name=LUNE_NAME --lune-id=LUNE_ID --transport=sse --port=3000 ``` When using SSE transport: - Connect to `/sse` to establish an SSE connection - Send messages to `/messages` ### Usage in Cursor You can either use it in SSE mode or stdio mode. Open Cursor Settings, find features, and add the following: #### Stdio Mode Name: `lune-[LUNE_NAME]-mcp` Type: `command` ```bash npx -y @lune-inc/mcp --api-key=YOUR_LUNE_API_KEY --lune-name=LUNE_NAME --lune-id=LUNE_ID ``` (Going to [https://www.lune.dev/lunes](https://www.lune.dev/lunes) and clicking "Use MCP" will copy this command to your clipboard) #### SSE Mode Name: `lune-[LUNE_NAME]-mcp` Type: `sse` Run the previous instructions for SSE mode, and then put in the following: `http://localhost:3000/sse` #### Prompt Examples for Cursor Agent ``` Using the lune-stripe-documentation-mcp server, use the lookup_context_for_stripe_documentation tool to get accurate context on how to implement usage based billing meters and implement it into my code ``` ### Usage with Claude Desktop Add the following to your `claude_desktop_config.json`. See [here](https://modelcontextprotocol.io/quickstart/user) for more details. ``` { "mcpServers": { "lune": { "command": "npx", "args": [ "-y", "@lune-inc/mcp", "--api-key=LUNE_API_KEY", "--lune-name=LUNE_NAME", "--lune-id=LUNE_ID" ] } } } ``` ### Usage with Windsurf and other tools Similar to instructions for Cursor and Claude Desktop. ## Debugging the Server To debug your server, you can use the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector). First build the server ``` npm run build ``` Run the following command in your terminal: ```bash # Start MCP Inspector and server with all tools npx @modelcontextprotocol/inspector node dist/index.js --api-key=YOUR_LUNE_API_KEY --lune-name=LUNE_NAME --lune-id=LUNE_ID ``` ### Instructions 1. Replace `YOUR_LUNE_API_KEY` with your actual Lune API key. 2. Run the command to start the MCP Inspector. 3. Open the MCP Inspector UI in your browser and click Connect to start the MCP server. 4. You can see the list of tools you selected and test each tool individually. ## Environment Variables You can also configure the server using environment variables: - `LUNE_API_KEY`: Your Lune API key - `LUNE_NAME`: The name of the Lune - `LUNE_ID`: The ID of the Lune - `TRANSPORT`: The transport method to use (`stdio` or `sse`) - `PORT`: The port to use for SSE transport (default: 3000)