MCP Template
REST API

Tools

Call tools via the REST API

All tools are available as POST endpoints. Requires the services:execute scope.

POST /api/v1/services/{tool_name}

greet

Greet a user by name.

curl -X POST http://localhost:8000/api/v1/services/greet \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name": "Alice", "shout": true, "times": 1}'

Request body:

FieldTypeDefaultDescription
namestring(required)Name to greet
shoutbooleanfalseUppercase the greeting
timesinteger1Repetition count

Response:

{ "message": "HELLO, ALICE!", "times": 1 }

config_show

Show the full project configuration.

curl -X POST http://localhost:8000/api/v1/services/config_show \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{}'

Request body: empty {}

Response:

{
  "config": {
    "llm_config": { "cache_enabled": true },
    "logging": { "verbose": false, "level": "INFO" },
    "server": { "host": "0.0.0.0", "port": 8000 }
  }
}

config_get

Get a single configuration value by dot-separated key.

curl -X POST http://localhost:8000/api/v1/services/config_get \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"key": "llm_config.cache_enabled"}'

Request body:

FieldTypeDescription
keystringDot-separated config path

Response:

{ "key": "llm_config.cache_enabled", "value": true }

config_set

Set a configuration override. The value is coerced to the appropriate type (bool, int, float, or string).

curl -X POST http://localhost:8000/api/v1/services/config_set \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"key": "logging.verbose", "value": "true"}'

Request body:

FieldTypeDescription
keystringDot-separated config path
valuestringNew value (auto-coerced)

Response:

{ "key": "logging.verbose", "coerced_value": true }

doctor

Run project health checks. Optionally auto-fix issues.

curl -X POST http://localhost:8000/api/v1/services/doctor \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"fix": false}'

Request body:

FieldTypeDefaultDescription
fixbooleanfalseAuto-fix fixable issues

Response:

{
  "checks": [
    { "name": "Python version", "status": "pass", "message": "3.12.0" },
    { "name": "Deps synced", "status": "warn", "message": "dependencies out of sync", "fixable": true }
  ],
  "has_failures": false
}

On this page