Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
API_URLNoSecoda API base URLhttps://app.secoda.co/api/v1/
API_TOKENYesYour Secoda API token (required)
AI_PERSONA_IDNoSecoda AI persona ID — pins a specific persona for all ai_chat calls.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_data_assetsA

Search for data assets in the catalog.

Args:
    query: Search query for finding tables, columns, charts, dashboards
    page: Page number for pagination (default: 1)
    truncate_length: Maximum characters for text fields in results (default: 150)

Returns:
    Search results with text fields truncated to specified length
search_documentationA

Search for documentation in the catalog.

Args:
    query: Search query for finding documents, questions, glossary terms
    page: Page number for pagination (default: 1)
    truncate_length: Maximum characters for text fields in results (default: 150)

Returns:
    Search results with text fields truncated to specified length
retrieve_entityB

Retrieve an entity from the catalog by ID.

Args:
    entity_id: The ID of the entity to retrieve
    truncate_length: Maximum characters for text fields in results (default: 150).
        Often useful to set to None when you need full descriptions/definitions.

Returns:
    Entity details with text fields truncated to specified length
entity_lineageA

Retrieve the upstream and downstream lineage of an entity.

Args:
    entity_id: The ID of the entity to get lineage for
    truncate_length: Maximum characters for text fields in results (default: 150)

Returns:
    Entity lineage with text fields truncated to specified length
glossaryA

Retrieve all business term definitions from the workspace glossary.

Args:
    truncate_length: Maximum characters for text fields in results (default: 150)

Returns:
    Glossary with text fields truncated to specified length
list_resourcesA

List catalog resources with advanced filtering capabilities.

This endpoint provides precise control over resource queries using structured filters.
Use this when you need exact matching, specific field filtering, or complex queries.

Args:
    filter: FilterOperand (field or logical) for filtering resources
    sort: SortConfig for ordering results
    page: Page number for pagination (default: 1)
    truncate_length: Maximum characters for text fields in results (default: 150)

Returns:
    Paginated list of resources matching the filter criteria

Filter Examples:

    # Single condition - title contains
    filter = {"operator": "contains", "field": "title", "value": "order_lines"}

    # Single condition - entity type
    filter = {"operator": "exact", "field": "native_type", "value": "table"}

    # Find all columns of a specific table
    filter = {"operator": "exact", "field": "parent_id", "value": "table-id-123"}

    # Multiple conditions with AND
    filter = {
        "operator": "and",
        "operands": [
            {"operator": "exact", "field": "native_type", "value": "table"},
            {"operator": "contains", "field": "title", "value": "customer"}
        ]
    }

Sort Examples:

    # Sort by title ascending
    sort = {"field": "title", "order": "asc"}

    # Sort by external_usage descending (most popular first)
    sort = {"field": "external_usage", "order": "desc"}
get_resourceA

Retrieve a specific resource by its ID.

Use this to get full details of a catalog resource (table, column, view, etc.)
after finding it through list_resources or search_data_assets.

Args:
    resource_id: The unique identifier of the resource to retrieve
    truncate_length: Maximum characters for text fields in results (default: 150).
        Set to None when you need full descriptions/definitions.

Returns:
    Resource details with text fields truncated to specified length
list_collectionsA

List all collections in the workspace.

Collections are organized groups of related resources (tables, dashboards, documents).
Use this to browse what topic areas and resource groups exist.

Args:
    title: Filter collections by title (optional)
    page: Page number for pagination (default: 1)
    truncate_length: Maximum characters for text fields in results (default: 150)

Returns:
    List of collections with text fields truncated to specified length

Example:
    list_collections(title="Customer")
    list_collections(page=2)
get_collectionA

Retrieve a specific collection by its ID.

Use this to get full details about a collection after finding it via list_collections.

Args:
    collection_id: The unique identifier of the collection
    truncate_length: Maximum characters for text fields in results (default: 150).
        Set to None for full descriptions.

Returns:
    Collection details with text fields truncated to specified length

Example:
    get_collection(collection_id="collection-123")
list_questionsA

List all questions in the workspace.

Questions in Secoda represent data consumer inquiries that have been asked and
answered by the data team. Use this to find existing answers before asking
a new question.

Args:
    page: Page number for pagination (default: 1)
    truncate_length: Maximum characters for text fields in results (default: 150)

Returns:
    List of questions with text fields truncated to specified length
get_questionA

Retrieve a specific question and its answer by ID.

Use this to read the full content of a question and any accepted answers after
finding it via list_questions or search_documentation.

Args:
    question_id: The unique identifier of the question
    truncate_length: Maximum characters for text fields in results (default: 150).
        Set to None to read the full question and answer text.

Returns:
    Question details including title, description, and answers
ai_chatA

Start an AI chat session in Secoda and wait for the response.

Submits a prompt to the Secoda embedded AI endpoint and polls until the
response is complete. Sends MCP progress notifications at each poll interval
so clients can show elapsed time. Returns the AI's response text along with
the chat ID, which can be passed as `parent` in a follow-up call to continue
the conversation.

Args:
    prompt: The message or question to send to the Secoda AI.
    ctx: MCP context (injected by FastMCP; not part of the tool schema).
    parent: Chat ID of a previous conversation to continue (optional).
        Pass the chat_id from a previous ai_chat response to maintain context.
    persona_id: Persona ID to use for the AI chat (optional).
        Defaults to AI_PERSONA_ID env var if set, otherwise the workspace default persona.
    poll_interval_seconds: Seconds between polling attempts (default: 10).
    timeout_seconds: Maximum seconds to wait for completion (default: 360).

Returns:
    JSON with keys:
        - success: true
        - chat_id: The ID of this chat (use as `parent` in follow-up calls)
        - status: "completed"
        - response_content: The AI's response text

Example:
    # Start a new conversation
    ai_chat(prompt="How do we handle price reductions in GMV calculations?")

    # Continue a previous conversation
    ai_chat(
        prompt="Can you elaborate on the discount logic?",
        parent="0d53d57b-d1ef-4fc2-bc50-fd3fba2fea93"
    )

Error handling:
    - 403: Permission denied - check API token has AI chat permissions
    - 429: Rate limit exceeded - tool retries automatically
    - Timeout: Increase timeout_seconds if the AI takes longer than expected

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mbrummerstedt/secoda-analysis-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server