Add a custom tool
POST
Add a skill or MCP server, workspace-wide or for one project. Its content is safety-scanned: a flagged tool is still created but runs skip it until someone acknowledges the flag in the portal. An MCP server using OAuth stays pending until it is connected in the portal. Requires the coding:tools:write scope.
CustomerApiKeyheader
AuthorizationBearer <API Key>Customer API key sent as a bearer token
customer_id?|nullapplication/json- body
auth_mode?|Value in
"oauth""token""none"nullconfig*description*stringkind*stringValue in
"mcp_server""skill"manual_client?|nullname*stringrepository_id?|nullDocument created, URL follows
application/json- response
tool*curl -X POST 'https://api.syndai.ai/api/v1/external/coding/tools' \ -H 'Content-Type: application/json' \ -d '{ "config": {}, "description": "string", "kind": "mcp_server", "name": "string"}'Example Response
{ "tool": { "auth_mode": "oauth", "auth_status": "pending", "config": {}, "description": "string", "description_hint": "string", "enabled": true, "has_token": true, "id": "string", "kind": "mcp_server", "name": "string", "not_ready_reason": "string", "oauth": { "connected_at": "string", "connected_by_left": true, "connected_by_name": "string", "issuer_host": "string", "redirect_uri": "string", "requested_scopes": [ "string" ], "scopes": [ "string" ] }, "repository_id": "string", "run_ready": true, "scan_reason": "string", "scan_status": "scanned", "scanned_at": "string" }}