Skip to main content
Glama
openserverless-mcp

openserverless-mcp

Official

openserverless mcp

An MCP server for OpenServerless. It exposes the OpenServerless action tools (previously the @opencode-ai/plugin tools under trustable-app/tools/) over the Model Context Protocol so any MCP-capable agent can drive them.

Tools

Tool

Description

action_new

Idempotently create an API endpoint (__main__.py + module file). public defaults to true.

action_invoke

Run ops invoke <endpoint> with key=value params and return the JSON result.

action_requirements

Add a library to an endpoint's requirements.txt (skips preinstalled libs).

action_add_secret

Wire a .env secret into an endpoint's context as ctx.<SECRET>.

secret_status

Check secret presence and endpoint bindings without reading its value.

secret_bind

Atomically bind the same secret to multiple endpoints.

secret_unbind

Atomically remove an obsolete generated binding without reading or deleting the secret.

auth_setup

Atomically wire Redis into all token-issuing, protected/session, and logout endpoints; never writes .env or configures JWT.

action_add_s3

Add bucket-scoped S3 to an endpoint's context (ctx.S3_CLIENT, ctx.S3_DATA, ctx.S3_WEB, ctx.S3_PUBLIC); forbids list_buckets and requires put_object → get_object/compare → delete_object for read/write verification.

action_add_postgresql

Add PostgreSQL (ctx.POSTGRESQL).

action_add_redis

Add Redis (ctx.REDIS, ctx.REDIS_PREFIX) and its Python runtime dependency; use it for opaque authenticated sessions.

action_add_milvus

Add Milvus vector DB (ctx.MILVUS).

action_add_mongodb

Add MongoDB (ctx.MONGODB_CLIENT, ctx.MONGODB).

The endpoint argument is either name (uses the v1 package) or package/name. Both segments must start with a letter and contain only letters, numbers, and hyphens. Use flat hyphenated names such as v1/employees-photo; underscores, spaces, nested routes, and forms such as v1/employees_photo or v1/employees/photo are invalid. Repeating action_new for a compatible existing endpoint is a successful check that leaves its files unchanged; incomplete paths and visibility conflicts are reported as MCP errors.

Secret values are never returned by these tools. Missing secrets and invalid endpoints are MCP errors (isError: true), so clients cannot mistake an incomplete binding for a successful tool call. action_add_secret remains as the single-endpoint compatibility tool; use secret_bind when several actions must share one user-configured credential.

Application .env and .env.production files are owned by Trustable's user-facing configuration flow. The MCP performs only value-free presence checks needed for binding validation and never creates, edits, imports, synchronizes, regenerates, or automatically populates those files. A missing variable must be added by the user through Trustable.

Application authentication uses Redis-backed opaque sessions. Create login, registration, me/session, every protected endpoint, and logout, then call auth_setup once with those complete endpoint sets. Store token-to-identity mappings under keys derived from ctx.REDIS_PREFIX with a bounded TTL; never use JWT or an application signing secret as a substitute.

Related MCP server: OpenMesha

Working directory

All path-based tools operate on paths relative to the process working directory: they read/write packages/<pkg>/<name>/... and .env. The server must therefore be launched with the user's app checkout as its CWD (this is how opencode launches type: "local" MCP servers).

Layout

src/
  index.ts            entrypoint — registers every tool over stdio
  lib.ts              shared helpers (endpoint parsing, connector injection, types)
  secrets.ts          secret name, .env, status, and atomic binding helpers
  tools/
    new.ts            action_new
    invoke.ts         action_invoke
    requirements.ts   action_requirements
    add-secret.ts     action_add_secret
    add-s3.ts         action_add_s3
    add-postgresql.ts action_add_postgresql
    add-redis.ts      action_add_redis
    add-milvus.ts     action_add_milvus
    add-mongodb.ts    action_add_mongodb
    secret-status.ts  secret_status
    secret-bind.ts    secret_bind
    secret-unbind.ts  secret_unbind
    auth-setup.ts     auth_setup

Each file under tools/ default-exports a Tool (defineTool({ name, config, handler })); index.ts imports them all and registers them in a loop. To add a tool, drop a file in tools/ and add it to the array in index.ts.

Run

Requires Node 18+ and ops on the PATH. TypeScript runs directly via tsx.

npm install
npm start          # tsx src/index.ts — speaks MCP over stdio

Wire into opencode

Add to the app's opencode.json:

{
  "mcp": {
    "openserverless": {
      "type": "local",
      "command": ["npx", "tsx", "/path/to/mcp/src/index.ts"],
      "enabled": true
    }
  }
}

Available Tools

13 tools
action_add_milvusA

Add Milvus vector DB connection to an endpoint's context. Provides ctx.MILVUS.

Inputs: endpoint (required).

action_add_mongodbB

Add MongoDB connection to an endpoint's context. Provides ctx.MONGODB_CLIENT and ctx.MONGODB.

Inputs: endpoint (required).

action_add_postgresqlA

Add PostgreSQL connection to an endpoint's context. Provides ctx.POSTGRESQL.

Inputs: endpoint (required).

action_add_redisA

Add Redis to one endpoint as ctx.REDIS and ctx.REDIS_PREFIX. For authenticated pages, every login/registration, me/session, protected-resource, and logout endpoint must be wired; use auth_setup to configure the complete set atomically. Authentication uses opaque random tokens stored server-side in prefix-safe Redis keys with a bounded TTL, never JWT or an application signing secret.

Inputs: endpoint (required).

action_add_s3A

Add a bucket-scoped S3 connection to an endpoint's context. Provides ctx.S3_CLIENT, ctx.S3_DATA, ctx.S3_WEB, ctx.S3_PUBLIC. Never call list_buckets; verify read/write with put_object, get_object plus content comparison, and delete_object in ctx.S3_DATA.

Inputs: endpoint (required).

action_add_secretB

Add a secret to an endpoint's context. The secret must exist in .env.

Inputs: secret (required), endpoint (required).

action_invokeA

Invoke an API action and return its JSON result. Executes ops invoke with the given endpoint and key=value parameters.

Inputs: endpoint (required), params.

action_newA

Create a new API endpoint. Creates the action folder with main.py and module file.

Inputs: endpoint (required), public.

action_requirementsA

Add a library to an endpoint's requirements.txt. Skips if the library is preinstalled.

Inputs: library (required), endpoint (required).

auth_setupA

Atomically add Redis session wiring to the complete authentication surface: token issuers (login/registration), token validators (me/session and every protected resource), and logout. This tool never reads or writes .env. Generated auth must use bcrypt password verification plus a cryptographically random opaque token stored as a prefix-safe ctx.REDIS_PREFIX key with a bounded TTL; protected endpoints derive identity from Redis and logout deletes the record. JWT and application signing secrets are forbidden.

Inputs: token_endpoints (required), logout_endpoints (required), protected_endpoints (required).

secret_bindA

Atomically bind one existing .env secret to multiple OpenServerless endpoints as ctx..

Inputs: secret (required), endpoints (required).

secret_statusA

Report whether a secret exists and is bound to selected endpoints without reading or returning its value.

Inputs: secret (required), endpoints.

secret_unbindA

Atomically remove one generated secret binding from multiple OpenServerless endpoints without deleting the secret value.

Inputs: secret (required), endpoints (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 13 tools

    Disambiguation4/5

    Most tools are clearly separated by integration target or resource: Milvus, S3, Postgres, Redis, MongoDB, secret status/bind/unbind, invoke, and auth setup. The main overlap is between action_add_secret and secret_bind, which both attach existing .env secrets to endpoint contexts; their descriptions clarify single vs. multi-endpoint scope, but the boundary could still cause misselection.

    Naming Consistency3/5

    The action_ and secret_ prefixes create a readable grouping, and action_add_* is used consistently for integration setup. However, action_new and action_requirements break the verb_noun pattern, and action_add_secret sits awkwardly alongside the secret_* family, making the naming somewhat mixed though still understandable.

    Tool Count5/5

    With 13 tools, the server is well scoped for an OpenServerless configuration platform. Each tool covers a distinct setup, invocation, secret-management, or auth task, and there are no obvious filler or redundant tools.

    Completeness3/5

    The set covers creating and invoking endpoints, adding dependencies and data connections, managing secret bindings, and setting up auth. However, there are notable gaps: no way to list, update, or delete endpoints, and no way to remove an added integration or connection, which can leave agents in dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables coding agents to create, deploy, invoke, and monitor serverless functions using 12 MCP tools, with support for multiple runtimes and remote MCP access.
      58 npm
      -
    • A
      license
      A
      quality
      B
      maintenance
      Enables MCP-capable agents to manage Meshive GPU Cloud resources, including account, workspaces, pods, storage, GPUs, templates, serverless deployments, tasks, assets, machines, and billing history.
      44
      Apache 2.0