Skip to main content

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, or CUSTOM_HEADERS.

  • Name
    hasAuthConfig
    Type
    boolean
    Description

    Whether credentials are stored for this server. Responses expose only this boolean — the stored authConfig itself 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.

MCP server object
{
"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​

POST/mcp/servers/all

Lists 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
curl https://api.autessa.com/autessa_poweruser/mcp/servers/all \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{
"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​

POST/mcp/servers/get

Retrieves 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 hasAuthConfig to see whether any are stored.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/mcp/servers/get \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "serverId": "mS4kT8rW1x" }'
Response
{
"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​

POST/mcp/servers/create

Registers 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, or CUSTOM_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 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\"}"
}'
Response
{
"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​

POST/mcp/servers/update

Updates 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, or CUSTOM_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
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"
}'
Response
{
"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​

POST/mcp/servers/delete

Removes 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
curl https://api.autessa.com/autessa_poweruser/mcp/servers/delete \
-X POST \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "serverId": "mS4kT8rW1x" }'
Response
{
"errors": []
}

Test the connection​

POST/mcp/servers/test-connection

Connects 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 connected is false).

  • 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
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" }'
Response
{
"connected": true,
"message": "Connection successful",
"toolCount": 7,
"errors": []
}

List tools​

POST/mcp/servers/list-tools

Queries 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, an inputSchema (JSON Schema for the tool's arguments), and optional metadata (used for synthetic tools derived from resources or prompts).

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
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" }'
Response
{
"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​

POST/mcp/servers/list-resources

Queries 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, and mimeType.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
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" }'
Response
{
"resources": [
{
"uri": "wiki://pages/onboarding",
"name": "Onboarding guide",
"description": "New-hire onboarding wiki page.",
"mimeType": "text/markdown"
}
],
"errors": []
}

List prompts​

POST/mcp/servers/list-prompts

Queries 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 an arguments array of prompt argument definitions.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
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" }'
Response
{
"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​

StatusWhen
200Success — check errors for validation messages (unknown server, unreachable URL).
401Invalid or missing poweruser key, or the server belongs to another company.
403Scoped key without the endpoint in its allow-list.
408Server-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.