Create MCP server
import requests
url = "https://api.datagrid.com/v1/organization/mcp-servers"
payload = {
"name": "<string>",
"base_url": "<string>",
"transport": "http",
"icon_url": "<string>",
"protocol_version": "<string>",
"authorization_secret_id": "<string>",
"authorization": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
base_url: '<string>',
transport: 'http',
icon_url: '<string>',
protocol_version: '<string>',
authorization_secret_id: '<string>',
authorization: '<string>'
})
};
fetch('https://api.datagrid.com/v1/organization/mcp-servers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://api.datagrid.com/v1/organization/mcp-servers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"base_url": "<string>",
"transport": "http",
"icon_url": "<string>",
"protocol_version": "<string>",
"authorization_secret_id": "<string>",
"authorization": "<string>"
}
'{
"object": "mcp_server",
"id": "<string>",
"name": "<string>",
"icon_url": "<string>",
"base_url": "<string>",
"transport": "<string>",
"protocol_version": "<string>",
"authorization_secret_id": "<string>",
"status": "<string>",
"metadata": {
"requires_oauth": true,
"oauth_configured": true,
"tool_count": 123,
"last_synced_at": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"managed_by_app": {
"app_uuid": "<string>",
"app_name": "<string>"
}
}{
"status_code": 123,
"error": "rate_limit_exceeded",
"message": "<string>",
"retryable": true,
"statusCode": 123,
"mitigation": "<string>",
"details": {
"reason": "<string>"
}
}MCP Servers - Beta
Create MCP server
Register a new MCP server in the current teamspace. Each teamspace can have at most 30 registered MCP servers.
POST
/
organization
/
mcp-servers
Create MCP server
import requests
url = "https://api.datagrid.com/v1/organization/mcp-servers"
payload = {
"name": "<string>",
"base_url": "<string>",
"transport": "http",
"icon_url": "<string>",
"protocol_version": "<string>",
"authorization_secret_id": "<string>",
"authorization": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
base_url: '<string>',
transport: 'http',
icon_url: '<string>',
protocol_version: '<string>',
authorization_secret_id: '<string>',
authorization: '<string>'
})
};
fetch('https://api.datagrid.com/v1/organization/mcp-servers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://api.datagrid.com/v1/organization/mcp-servers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"base_url": "<string>",
"transport": "http",
"icon_url": "<string>",
"protocol_version": "<string>",
"authorization_secret_id": "<string>",
"authorization": "<string>"
}
'{
"object": "mcp_server",
"id": "<string>",
"name": "<string>",
"icon_url": "<string>",
"base_url": "<string>",
"transport": "<string>",
"protocol_version": "<string>",
"authorization_secret_id": "<string>",
"status": "<string>",
"metadata": {
"requires_oauth": true,
"oauth_configured": true,
"tool_count": 123,
"last_synced_at": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"managed_by_app": {
"app_uuid": "<string>",
"app_name": "<string>"
}
}{
"status_code": 123,
"error": "rate_limit_exceeded",
"message": "<string>",
"retryable": true,
"statusCode": 123,
"mitigation": "<string>",
"details": {
"reason": "<string>"
}
}Registers a new MCP server at teamspace scope.
Use this first in the MCP setup flow.
Datagrid automatically attempts an initial tool sync after create.
Each teamspace can register up to 30 MCP servers. If the limit is reached, the request returns
409 Conflict. Remove an existing server before adding a new one.
You can provide auth in either form:
authorization_secret_id: reference an existing Datagrid secretauthorization: raw Authorization header value (Datagrid stores it as a secret automatically)
authorization takes precedence.
Ownership note:
authorizationcreates a Datagrid-managed secret for this MCP server. If you later rotate or clear that value, Datagrid cleans up the previously auto-created secret.authorization_secret_idreferences an existing secret that you manage. Datagrid uses the reference, but does not delete that secret automatically.
curl -X POST https://api.datagrid.com/v1/organization/mcp-servers \
-H "Authorization: Bearer $DATAGRID_API_KEY" \
-H "Datagrid-Teamspace: $DATAGRID_TEAMSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"name": "manhour",
"base_url": "https://mcp.example.com/mcp",
"transport": "http",
"authorization": "Bearer external-api-token"
}'
server = client.organization.mcp_servers.create(
name="manhour",
base_url="https://mcp.example.com/mcp",
transport="http",
authorization="Bearer external-api-token",
)
const server = await client.organization.mcpServers.create({
name: "manhour",
base_url: "https://mcp.example.com/mcp",
transport: "http",
authorization: "Bearer external-api-token",
});
Authorizations
Body
application/json
Response
Created MCP server