Sola
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Sola
Sola is an MCP gateway. A client connects to one Streamable HTTP endpoint. The model sees four tools: discover_servers, discover_tools, get_tool_schema, and invoke_tool.
You install registries of the backend operations the gateway may call. Sola checks the allowlist, then runs the matching catalog tool through invoke_tool.
Install
Node.js 20+. Peer dependency: zod.
npm install sola-mcp-gateway zodDependencies: @modelcontextprotocol/sdk, express.
Related MCP server: mcp-router
Usage
1. Define a catalog
import { z } from 'zod';
import {
bindCatalogTools,
compileServer,
success,
type CatalogTool,
} from 'sola-mcp-gateway';
const ping: CatalogTool = {
name: 'ping',
title: 'Ping',
description: 'Check that the demo backend is reachable',
enabled: true,
scopes: ['demo:read'],
input: z.object({}).strict(),
schema: { type: 'object', properties: {}, additionalProperties: false },
execute: async () => success({ ok: true }),
};
const server = compileServer({
id: 'demo',
title: 'Demo',
description: 'Example catalog',
owner: 'example',
kind: 'catalog',
enabled: true,
access: { scopes: ['demo:read'], clients: ['*'] },
}, [ping]);
const tools = bindCatalogTools([ping], () => ({
request: async () => ({}),
}));
await tools.invoke({
sessionHash: 's1',
subject: 'user',
credentials: {},
scopes: ['demo:read'],
expiresAt: Math.floor(Date.now() / 1000) + 3600,
}, 'ping', {});Each tool has a public name, JSON Schema, Zod input, and either execute or request + normalize. If a scope ends in :write, add write metadata. Details: spec/02-catalog.md.
2. Serve it
import express from 'express';
import {
attachSola,
findCatalog,
useRegistries,
writeScopeNames,
} from 'sola-mcp-gateway';
useRegistries([{
id: 'demo',
catalog: { id: 'demo', server, ...tools },
}]);
const app = express();
app.use(express.json());
attachSola(app, {
publicBaseUrl: process.env.PUBLIC_BASE_URL!,
identity: { serviceName: 'demo', resourceName: 'Demo MCP' },
host: {
registry: { version: '1', servers: [server] },
writesEnabled: false,
writeScopes: writeScopeNames(),
getToolSchema: (serverId, toolName) =>
findCatalog(serverId)?.getToolSchema(toolName),
invoke: (session, serverId, toolName, raw) =>
findCatalog(serverId)!.invoke(session, toolName, raw),
},
sessions, // SolaSessionRuntime: createSession, resolveSession, revokeSession
oauth, // SolaOAuthRuntime: clients, authorization codes, refresh grants
transport: { sse: false },
});attachSola is the gateway. It mounts /mcp and the OAuth 2.1 / PKCE routes. Pass a SolaSessionRuntime and a SolaOAuthRuntime.
transport: { sse: false } is for request/response hosts. Clients POST to /mcp.
A client signs in, then calls discover_servers, discover_tools, and invoke_tool. Those calls stay on the gateway. invoke_tool runs the matching catalog tool.
Spec
Catalogs are TypeScript (CatalogTool). Full spec: spec/.
Document | Topic |
Roles and MCP surface | |
Tools, codecs, HTTP steps | |
The four public tools | |
Confirmation and idempotency | |
Tokens and allowlisting | |
Drafting a catalog from another spec |
Versioning
Contributing
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Streamable HTTP MCP gateway for NV oOS fleets — one API key, namespaced tools, quotas and policy.
Managed MCP gateway with OAuth, per-agent permissions, shared accounts and activity logs.
Unified gateway exposing 150+ tools across all NexGenData MCP servers via one endpoint.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables connecting any number of OpenAPI, GraphQL, and MCP servers to MCP clients through a single local endpoint, with a web UI for management, unified tool exposure, and policy controls.1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables clients to connect once and access the union of multiple backend MCP servers' tools through a single unified interface, with namespaced tool routing, capability search, and health isolation.MIT
- AlicenseNot gradedqualityBmaintenanceAggregates multiple upstream MCP servers, OpenAPI/REST APIs, and local tools behind scoped, token-authenticated endpoints with centralized governance, auditing, RBAC, and runtime tool controls.MIT
- AlicenseNot gradedqualityCmaintenanceProvides a single MCP endpoint that lets AI agents discover and call tools across many upstream MCP servers using per-user credentials and group-based access.4 npmMIT