MCP servers
Sobmit can call tools on any Model Context Protocol (MCP) server. MCP is the standard way to expose external tools — databases, search, internal APIs — to AI agents.
How it works
- You declare servers in the
MCP_SERVERSenvironment variable. - An MCP node references a server by id and a tool by name.
- At run time, Sobmit connects to that server and invokes the tool.
Connection details and credentials live server-side and are never stored in a flow graph — a node only stores the server id and tool name.
Configuring servers
Set MCP_SERVERS to a JSON object keyed by server id:
{
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": { "Authorization": "Bearer ${GITHUB_TOKEN}" }
},
"postgres": {
"url": "https://your-mcp.example.com/sse"
}
} Fields
| Field | Purpose |
|---|---|
url | Streamable HTTP (or SSE) endpoint of the MCP server |
headers | Optional static request headers |
envSubstitution | Substitute ${ENV_VAR} in headers (default true) |
Secrets
Header values support ${ENV_VAR} placeholders that are substituted at read
time from the process environment. This lets you keep secrets out of .env files and graph data:
{ "Authorization": "Bearer ${GITHUB_TOKEN}" } For a literal $ use $$.
Using a server in a flow
Add an MCP node, pick the server id and the tool name, and provide the arguments. The inspector lists available server ids (but never their header values).
Sobmit as an MCP server
Sobmit itself can be consumed as an MCP server — external agents (Claude Desktop, Cursor, …) can discover it as a protected resource and obtain OAuth 2.1 access tokens with PKCE. See Sobmit as an MCP server for the discovery endpoint, the authorization flow and the available tools.
Related
- MCP node — calling a tool from a flow.