Tools

Write a function. Get an MCP server.

Look up a customer. Send an email. Query a database. Write the handler, define the schema — Reminix serves it as an MCP server that any agent or client can discover and call.

Works with

ClaudeCursorWindsurfChatGPTAny MCP Client

This is all it takes.

A name, a schema, and a handler function. Deploy it and Reminix serves it as an MCP server — discoverable, validated, monitored.

MCP server

Your tool is served via the Model Context Protocol. Any MCP client can connect.

Schema validation

Inputs validated against your JSON schema. Outputs guaranteed to match.

Discovery

Any agent in the project — or any external MCP client — can discover and call your tools.

tools/crm.ts
import { z } from "zod"
import { tool } from "@reminix/runtime"

export const lookupCustomer = tool(
  "lookup_customer",
  {
    description: "Find customer by email",
    inputSchema: z.object({
      email: z.string(),
    }),
    outputSchema: z.object({
      id: z.string(),
      name: z.string(),
      plan: z.string(),
    }),
    handler: async ({ email }) => {
      return await crm.find(email)
    },
  },
)

export const createTicket = tool(
  "create_ticket",
  {
    description: "Create a support ticket",
    inputSchema: z.object({
      subject: z.string(),
      body: z.string(),
    }),
    handler: async ({ subject, body }) => {
      return await helpdesk.create({
        subject,
        body,
      })
    },
  },
)

One endpoint. Every tool discoverable.

Your tools become a single MCP endpoint. Any agent, Claude, Cursor, or custom client can discover and call them.

MCPapi.reminix.com/mcp
  • All your project tools discoverable via a single endpoint
  • Compatible with any MCP client (Claude, Cursor, custom)
  • Auth, rate limiting, and monitoring included

Connect your tools to anything.

Your tools need to talk to external services. Reminix handles the OAuth flow, token exchange, storage, and refresh. Your handler just gets a valid token.

How it works

  1. Add your OAuth credentials

    Create an OAuth app in Google Console, Slack API, Notion, etc. Add the client ID and secret to Reminix.

  2. Authorize via Reminix

    Reminix generates the auth URL, handles the callback, exchanges the code for tokens, and stores them encrypted.

  3. Use tokens in your code

    Your tool handler gets a valid access token. Reminix refreshes expired tokens automatically.

using-connections.ts
// Get a fresh token — auto-refreshed
const { access_token } = await client
  .oauthConnections.getToken("google")

// Use Google's own SDK directly
const calendar = google.calendar({
  version: "v3",
  auth: access_token,
})

const events = await calendar.events.list({
  calendarId: "primary",
  timeMin: new Date().toISOString(),
})

Supported services

Google Workspace
Slack
GitHub
Notion
Linear
Microsoft 365
Jira
Discord
HubSpot
Salesforce
Airtable
Asana
Figma
Dropbox
GitLab
Bitbucket
Confluence
Intercom
Calendly
Monday.com

Any OAuth 2.0 provider works. Add your client ID and secret — we handle the protocol.

One project. Agents and tools, side by side.

Agents and tools live in the same project. One serve() call. One reminix deploy. They share secrets, connections, and monitoring.

A single agent can use your custom CRM tool, a Google Calendar tool, and a Slack tool — all in the same conversation.

index.ts
import { z } from "zod"
import OpenAI from "openai"
import { agent, tool, serve } from "@reminix/runtime"

const openai = new OpenAI()

const supportBot = agent("support-bot", {
  type: "chat",
  handler: async (input) => {
    const response = await openai.chat
      .completions.create({
        model: "gpt-4o",
        messages: input.messages,
      })
    return response.choices[0].message.content
  },
})

const lookupCustomer = tool("lookup_customer", {
  description: "Find customer by email",
  inputSchema: z.object({ email: z.string() }),
  handler: async ({ email }) => {
    return await crm.find(email)
  },
})

serve({
  agents: [supportBot],
  tools: [lookupCustomer],
})

Deploy your first tool in five minutes.

Free while in early access. No credit card required.

Or read the docs