Skip to main content
Glama
deadcodedump

Expose

by deadcodedump

title: Expose description: Easily build MCP tools for Claude desktop app

Expose lets you build MCP tools that you can invoke with MCP client like Claude desktop app.

  • Self-hosted: You can easily self-host tools and deploy them on your own server.

  • Unified gateway: Generates a single HTTP endpoint that you can register with expose-cli

  • Flexible: Easily configure and customize your tools to fit your needs.

Related MCP server: Model Context Protocol Server

Getting started

  1. Setup expose CLI

    curl -fsSL https://github.com/a0dotrun/expose/releases/download/stable/download_cli.sh | bash
  2. Install dependencies

    npm i @a0dotrun/expose
  3. Create server

    touch src/server.ts
    import { create } from "@a0dotrun/expose"
    
    const app = create({
      tools: [],
    })
    
    export default {
      port: 3000,
      fetch: app.fetch,
    }
  4. Define your tools

+ import { tool } from "@a0dotrun/expose/tool"
+ import { subscription } from "@acme/lib/subscription"
+ import { z } from "zod"

+ const getCustomerSubscription = tool({
+   name: "getCustomerSubscription",
+   description: "Get subscription information for a customer",
+   args: z.object({
+       customer: z.string().uuid()
+   }),
+   run: async (input) => {
+     // Your subscription logic here
+     return input;
+   },
+ });


+ const createCustomerSubscription = tool({
+   name: "createCustomerSubscription",
+   description: "Create a subscription for a customer",
+   args: z.object({
+       customer: z.string().uuid()
+   }),
+   run: async (input) => {
+     // Your subscription logic here
+     return input;
+   },
+ });

const app = create({
  tools: [
+    getCustomerSubscription,
+    createCustomerSubscription,
  ],
});
  1. Start server

    npm run dev

    You can also deploy the server and note down the public URL.

  2. Register in Claude desktop app MACOS Claude desktop MCP config path: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  ...
  "mcpServers": {
    "subscriptionManager": {
      "command": "/Users/acmeuser/.local/bin/expose-cli",
      "args": ["--url", "http://localhost:3000", "--timeout", "15"]
    }
  }
  ...
}

replace localhost with your public URL


expose is created by @_sanchitrk at a0

Acknowledgements

I was inspired by opencontrol

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    D
    quality
    C
    maintenance
    A utility tool that enables Claude Desktop to interact with external tools via the Model Context Protocol, providing features like email sending and simple calculations while simplifying the MCP setup process.
    2
    5
    12
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that allows integration with Claude Desktop by creating and managing custom tools that can be executed through the MCP framework.
    25
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server built with the mcp-framework for developing and managing custom tools. It provides a structured foundation for building and integrating modular components like data processors and API clients into Claude Desktop.
    5
    -