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.

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

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/deadcodedump/expose'

If you have feedback or need assistance with the MCP directory API, please join our Discord server