Skip to main content
CoreMCP loads coremcp.yaml from the binary’s directory by default. Override with --config /path/to/file.yaml. All sections are optional except sources (you need at least one).

Top-level shape

server

logging

JSON format is the right choice for systemd / Docker — easier to ship into Loki, Datadog, etc.

sources

A list. Each entry defines one database or API the agent will expose to MCP clients. Source names must be unique within an agent.

Database sources (mssql)

firebird is a placeholder — the factory returns “not implemented yet” on connect. Tracking issue: firebird driver.

REST sources

GraphQL sources

Schema introspection runs once on startup; queries become parameterized MCP tools.

custom_tools

Define reusable SQL or API queries as named MCP tools your client can call directly.
Always set type for parameters. The default is string which uses parameterized binding; integer and number validate before interpolation. identifier quotes the value safely for table/column names. Without a type, never interpolate a parameter outside of a quoted string — it’s a SQL injection vector.

security

Environment variable expansion

Anywhere a string is expected, CoreMCP expands ${VAR} from the process environment. Useful for keeping secrets out of the YAML file:

Full example

A complete coremcp.yaml exercising every section:
See coremcp.example.yaml in the repo for the most up-to-date annotated reference.