MCP
Register remote MCP (Model Context Protocol) servers for your company, manage their connection and authentication settings, and inspect the tools, resources, and prompts each server exposes.
All paths on this page are relative to https://api.autessa.com/autessa_poweruser/mcp/servers. Every request is a POST with a JSON body, and every ID is an opaque string. See the Poweruser API overview for authentication and conventions.
Registered servers are company-scoped: every member of the linked user's
company sees the same server list. Once registered, a server can back an
MCP agent (see Agents) or be turned into
individual tools via the Tools API.
The MCP server object
- Name
id- Type
- string
- Description
Unique server identifier.
- Name
companyId- Type
- string
- Description
The company that owns the registration.
- Name
name- Type
- string
- Description
Display name.
- Name
serverUrl- Type
- string
- Description
The remote MCP server's URL.
- Name
description- Type
- string
- Description
What the server provides.
- Name
authType- Type
- string
- Description
How Autessa authenticates to the server:
NONE,API_KEY,BEARER_TOKEN,BASIC_AUTH, orCUSTOM_HEADERS.
- Name
hasAuthConfig- Type
- boolean
- Description
Whether credentials are stored for this server. Responses expose only this boolean — the stored
authConfigitself is never returned by any endpoint.
- Name
createdAt- Type
- string
- Description
ISO-8601 creation timestamp.
- Name
updatedAt- Type
- string
- Description
ISO-8601 timestamp of the last update.
{
"id": "mS4kT8rW1x",
"companyId": "cP2mK7dX4v",
"name": "Internal Knowledge MCP",
"serverUrl": "https://mcp.acme.internal/sse",
"description": "Company wiki search and page retrieval.",
"authType": "BEARER_TOKEN",
"hasAuthConfig": true,
"createdAt": "2026-05-12T09:30:00",
"updatedAt": "2026-06-28T17:42:10"
}
List all servers
/mcp/servers/allLists every MCP server registered for the company.
Request parameters
None — send an empty object {}.
Response
- Name
servers- Type
- array<McpServer>
- Description
The company's registered servers, each in the MCP server object shape.
- Name
errors- Type
- array<string>
- Description
Error messages, if any occurred.
curl https://api.autessa.com/autessa_poweruser/mcp/servers/all \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{}'
{
"servers": [
{
"id": "mS4kT8rW1x",
"companyId": "cP2mK7dX4v",
"name": "Internal Knowledge MCP",
"serverUrl": "https://mcp.acme.internal/sse",
"authType": "BEARER_TOKEN",
"hasAuthConfig": true,
"createdAt": "2026-05-12T09:30:00",
"updatedAt": "2026-06-28T17:42:10"
}
],
"errors": []
}
Get a server
/mcp/servers/getRetrieves a single MCP server registration.
Request parameters
- Name
serverId- Type
- string
- Description
The server to fetch.
Response
- Name
server- Type
- McpServer
- Description
The MCP server object. Credentials are never included; check
hasAuthConfigto see whether any are stored.
- Name
errors- Type
- array<string>
- Description
Error messages, if any occurred.
curl https://api.autessa.com/autessa_poweruser/mcp/servers/get \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "serverId": "mS4kT8rW1x" }'
{
"server": {
"id": "mS4kT8rW1x",
"companyId": "cP2mK7dX4v",
"name": "Internal Knowledge MCP",
"serverUrl": "https://mcp.acme.internal/sse",
"description": "Company wiki search and page retrieval.",
"authType": "BEARER_TOKEN",
"hasAuthConfig": true,
"createdAt": "2026-05-12T09:30:00",
"updatedAt": "2026-06-28T17:42:10"
},
"errors": []
}
Register a server
/mcp/servers/createRegisters a new MCP server for the company. Credentials in authConfig are
stored server-side and never returned by later reads — after creation the
response only reports hasAuthConfig: true.
Request parameters
- Name
name- Type
- string
- Description
Display name.
- Name
serverUrl- Type
- string
- Description
The remote server's URL.
- Name
description- Type
- string
- Description
What the server provides.
- Name
authType- Type
- string
- Description
NONE,API_KEY,BEARER_TOKEN,BASIC_AUTH, orCUSTOM_HEADERS.
- Name
authConfig- Type
- string
- Description
JSON string with the auth details matching
authType(for example a token, key/value header pairs, or username/password). Write-only.
Response
- Name
server- Type
- McpServer
- Description
The newly registered server.
- Name
errors- Type
- array<string>
- Description
Error messages, if any occurred.
- cURL
- JavaScript
- Python
curl https://api.autessa.com/autessa_poweruser/mcp/servers/create \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Internal Knowledge MCP",
"serverUrl": "https://mcp.acme.internal/sse",
"description": "Company wiki search and page retrieval.",
"authType": "BEARER_TOKEN",
"authConfig": "{\"token\": \"mcp-secret-token\"}"
}'
const response = await fetch(
'https://api.autessa.com/autessa_poweruser/mcp/servers/create',
{
method: 'POST',
headers: {
'Authorization': process.env.POWERUSER_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Internal Knowledge MCP',
serverUrl: 'https://mcp.acme.internal/sse',
description: 'Company wiki search and page retrieval.',
authType: 'BEARER_TOKEN',
authConfig: JSON.stringify({ token: 'mcp-secret-token' })
})
}
);
const { server } = await response.json();
console.log(server.id);
import json
import os
import requests
response = requests.post(
'https://api.autessa.com/autessa_poweruser/mcp/servers/create',
headers={'Authorization': os.environ['POWERUSER_KEY']},
json={
'name': 'Internal Knowledge MCP',
'serverUrl': 'https://mcp.acme.internal/sse',
'description': 'Company wiki search and page retrieval.',
'authType': 'BEARER_TOKEN',
'authConfig': json.dumps({'token': 'mcp-secret-token'})
}
)
server = response.json()['server']
{
"server": {
"id": "mS4kT8rW1x",
"companyId": "cP2mK7dX4v",
"name": "Internal Knowledge MCP",
"serverUrl": "https://mcp.acme.internal/sse",
"description": "Company wiki search and page retrieval.",
"authType": "BEARER_TOKEN",
"hasAuthConfig": true,
"createdAt": "2026-07-01T10:15:00",
"updatedAt": "2026-07-01T10:15:00"
},
"errors": []
}
Update a server
/mcp/servers/updateUpdates a server's registration. Send authConfig only when rotating
credentials — it replaces the stored value and, like everywhere else, is
never echoed back.
Request parameters
- Name
serverId- Type
- string
- Description
The server to update.
- Name
name- Type
- string
- Description
New display name.
- Name
serverUrl- Type
- string
- Description
New server URL.
- Name
description- Type
- string
- Description
New description.
- Name
authType- Type
- string
- Description
New auth type:
NONE,API_KEY,BEARER_TOKEN,BASIC_AUTH, orCUSTOM_HEADERS.
- Name
authConfig- Type
- string
- Description
Replacement JSON auth details. Write-only.
Response
- Name
server- Type
- McpServer
- Description
The updated server object.
- Name
errors- Type
- array<string>
- Description
Error messages, if any occurred.
curl https://api.autessa.com/autessa_poweruser/mcp/servers/update \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"serverId": "mS4kT8rW1x",
"name": "Internal Knowledge MCP (prod)",
"serverUrl": "https://mcp.acme.internal/sse"
}'
{
"server": {
"id": "mS4kT8rW1x",
"name": "Internal Knowledge MCP (prod)",
"serverUrl": "https://mcp.acme.internal/sse",
"authType": "BEARER_TOKEN",
"hasAuthConfig": true,
"updatedAt": "2026-07-01T11:02:33"
},
"errors": []
}
Delete a server
/mcp/servers/deleteRemoves the server registration. Agents or tools that referenced it stop being able to reach the server.
Request parameters
- Name
serverId- Type
- string
- Description
The server to delete.
Response
- Name
errors- Type
- array<string>
- Description
Error messages, if any occurred.
curl https://api.autessa.com/autessa_poweruser/mcp/servers/delete \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "serverId": "mS4kT8rW1x" }'
{
"errors": []
}
Test the connection
/mcp/servers/test-connectionConnects to the server with its stored auth settings and reports whether the handshake succeeded, along with how many tools it advertises. Use this after registering or rotating credentials.
Request parameters
- Name
serverId- Type
- string
- Description
The server to test.
Response
- Name
connected- Type
- boolean
- Description
Whether the connection succeeded.
- Name
message- Type
- string
- Description
Human-readable result (an error description when
connectedisfalse).
- Name
toolCount- Type
- integer
- Description
Number of tools the server advertises, when connected.
- Name
errors- Type
- array<string>
- Description
Error messages, if any occurred.
curl https://api.autessa.com/autessa_poweruser/mcp/servers/test-connection \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "serverId": "mS4kT8rW1x" }'
{
"connected": true,
"message": "Connection successful",
"toolCount": 7,
"errors": []
}
List tools
/mcp/servers/list-toolsQueries the live server for the tools it exposes.
Request parameters
- Name
serverId- Type
- string
- Description
The server to query.
Response
- Name
tools- Type
- array<McpTool>
- Description
Tools the server advertises. Each has
name,description, aninputSchema(JSON Schema for the tool's arguments), and optionalmetadata(used for synthetic tools derived from resources or prompts).
- Name
errors- Type
- array<string>
- Description
Error messages, if any occurred.
curl https://api.autessa.com/autessa_poweruser/mcp/servers/list-tools \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "serverId": "mS4kT8rW1x" }'
{
"tools": [
{
"name": "search_wiki",
"description": "Full-text search over the company wiki.",
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string" }
},
"required": ["query"]
},
"metadata": null
}
],
"errors": []
}
List resources
/mcp/servers/list-resourcesQueries the live server for the resources it exposes.
Request parameters
- Name
serverId- Type
- string
- Description
The server to query.
Response
- Name
resources- Type
- array<McpResource>
- Description
Resources the server advertises. Each has
uri,name,description, andmimeType.
- Name
errors- Type
- array<string>
- Description
Error messages, if any occurred.
curl https://api.autessa.com/autessa_poweruser/mcp/servers/list-resources \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "serverId": "mS4kT8rW1x" }'
{
"resources": [
{
"uri": "wiki://pages/onboarding",
"name": "Onboarding guide",
"description": "New-hire onboarding wiki page.",
"mimeType": "text/markdown"
}
],
"errors": []
}
List prompts
/mcp/servers/list-promptsQueries the live server for the prompts it exposes.
Request parameters
- Name
serverId- Type
- string
- Description
The server to query.
Response
- Name
prompts- Type
- array<McpPrompt>
- Description
Prompts the server advertises. Each has
name,description, and anargumentsarray of prompt argument definitions.
- Name
errors- Type
- array<string>
- Description
Error messages, if any occurred.
curl https://api.autessa.com/autessa_poweruser/mcp/servers/list-prompts \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "serverId": "mS4kT8rW1x" }'
{
"prompts": [
{
"name": "summarize_page",
"description": "Summarize a wiki page for a given audience.",
"arguments": [
{ "name": "audience", "description": "Who the summary is for", "required": true }
]
}
],
"errors": []
}
Errors
| Status | When |
|---|---|
200 | Success — check errors for validation messages (unknown server, unreachable URL). |
401 | Invalid or missing poweruser key, or the server belongs to another company. |
403 | Scoped key without the endpoint in its allow-list. |
408 | Server-side error; errors contains the message. |
Live-inspection endpoints (test-connection, list-tools, list-resources,
list-prompts) depend on the remote server being reachable — connection
failures come back as messages in errors (or connected: false for
test-connection) rather than HTTP-level failures.