Skip to main content
Glama

Outline MCP Server

A Model Context Protocol (MCP) server for Outline that enables reading and writing documents through the Outline API.

Features

  • Read Documents: Get individual documents, search, and list documents

  • Write Documents: Create, update, and delete documents

  • Collection Management: List and retrieve collection information

  • Full Text Search: Search across all documents in your Outline instance

  • Markdown Support: Create and edit documents with full Markdown formatting

Related MCP server: mcp-outline

Quick Start (npx)

The easiest way to use this server is via npx — no cloning or building required. Point your MCP client at it directly:

{
  "mcpServers": {
    "outline": {
      "command": "npx",
      "args": ["-y", "getoutline-mcp-server"],
      "env": {
        "OUTLINE_API_KEY": "your-secret-api-token",
        "OUTLINE_BASE_URL": "https://your-outline-instance.com"
      }
    }
  }
}

See Configuration for how to obtain the API token.

Installation (from source)

For local development, or to run from source instead of npm:

  1. Clone or download this repository

  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build

Configuration

Before using the server, you need to set up your Outline API credentials:

  1. Get your Outline API token:

  2. Set environment variables:

    export OUTLINE_BASE_URL="https://your-outline-instance.com"
    export OUTLINE_API_KEY="your-api-token-here"

Usage

Running the Server

Start the MCP server:

npm start

The server communicates via stdio and is compatible with any MCP client.

Available Tools

Document Operations

  1. outline_get_document

    • Get a specific document by ID

    • Parameters: id (string, required)

  2. outline_search_documents

    • Search for documents across your Outline instance

    • Parameters: query (string, required), limit (number, optional, default: 25)

  3. outline_list_documents

    • List documents, optionally filtered by collection

    • Parameters: collectionId (string, optional), limit (number, optional, default: 25)

  4. outline_create_document

    • Create a new document

    • Parameters:

      • title (string, required)

      • text (string, required) - Markdown content

      • collectionId (string, optional)

      • parentDocumentId (string, optional)

      • publish (boolean, optional, default: false)

  5. outline_update_document

    • Update an existing document

    • Parameters:

      • id (string, required)

      • title (string, optional)

      • text (string, optional) - Markdown content

      • publish (boolean, optional)

  6. outline_delete_document

    • Delete a document

    • Parameters: id (string, required)

Collection Operations

  1. outline_list_collections

    • List all collections in your Outline instance

    • Parameters: none

  2. outline_get_collection

    • Get information about a specific collection

    • Parameters: id (string, required)

Example Usage

Here are some example tool calls:

{
  "name": "outline_search_documents",
  "arguments": {
    "query": "project documentation",
    "limit": 10
  }
}
{
  "name": "outline_create_document",
  "arguments": {
    "title": "New Project Plan",
    "text": "# Project Overview\n\nThis document outlines...",
    "collectionId": "collection-id-here",
    "publish": true
  }
}
{
  "name": "outline_update_document",
  "arguments": {
    "id": "document-id-here",
    "title": "Updated Project Plan",
    "text": "# Updated Project Overview\n\nThis document has been updated..."
  }
}

Development

Project Structure

src/
├── index.ts           # Main MCP server implementation
├── outline-client.ts  # Outline API client

Scripts

  • npm run build - Compile TypeScript to JavaScript

  • npm run dev - Build and run the server

  • npm run watch - Watch for changes and rebuild

  • npm start - Run the compiled server

Building

npm run build

The compiled JavaScript will be output to the dist/ directory.

Configuration with MCP Clients

To use this server with an MCP client, you'll need to configure it to run this server. The exact configuration depends on your client, but generally you'll need to:

  1. Specify the command to run: node /path/to/outline-mcp-server/dist/index.js

  2. Set the environment variables for your Outline instance

  3. Configure the client to use stdio transport

Client Configuration Examples

Claude

For clients like Claude that use a JSON configuration file, add the following to your mcp-servers.json. The recommended approach uses npx, so there is nothing to clone or build:

{
  "mcpServers": {
    "outline": {
      "command": "npx",
      "args": ["-y", "getoutline-mcp-server"],
      "env": {
        "OUTLINE_API_KEY": "your-secret-api-token",
        "OUTLINE_BASE_URL": "https://your-outline-instance.com"
      }
    }
  }
}
Alternative: run from source

If you have cloned and built the project locally, point the client at the compiled dist/index.js instead:

{
  "mcpServers": {
    "outline": {
      "command": "node",
      "args": ["/path/to/your/projects/outline-mcp-server/dist/index.js"],
      "env": {
        "OUTLINE_API_KEY": "your-secret-api-token",
        "OUTLINE_BASE_URL": "https://your-outline-instance.com"
      }
    }
  }
}

Make sure to replace the args path with the absolute path to the index.js file in your project, and fill in your actual credentials in the env block.

Cursor

For clients like Cursor, you can typically set environment variables directly within the client's settings or by launching the client from a terminal where you have already exported the variables.

export OUTLINE_BASE_URL="https://your-outline-instance.com"
export OUTLINE_API_KEY="your-secret-api-token"

# Then launch Cursor from this terminal
/path/to/Cursor.app/Contents/MacOS/Cursor

API Rate Limits

Be aware that Outline may have API rate limits. The server doesn't implement rate limiting internally, so you may need to handle this at the client level if you're making many requests.

Error Handling

The server includes comprehensive error handling and will return descriptive error messages for common issues like:

  • Missing or invalid API credentials

  • Network connectivity problems

  • Invalid document IDs

  • API rate limit errors

Security Notes

  • Store your API token securely using environment variables

  • Never commit your API token to version control

  • Consider using restricted API tokens with minimal required permissions

  • Be cautious when allowing others to use your MCP server as it has full access to your Outline instance

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Available Tools

8 tools
outline_create_documentC

Create a new document in Outline

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe title of the document
textYesThe content of the document in Markdown format
collectionIdNoOptional collection ID to create the document in
parentDocumentIdNoOptional parent document ID for nested documents
publishNoWhether to publish the document immediately (default: false)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to mention what the tool returns (document ID, full object, or nothing), error handling for invalid parentDocumentIds, side effects of publishing, or required authentication/authorization levels.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler words. It is appropriately concise, though it errs on the side of minimalism given the tool's complexity. The structure is correct with the action verb leading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters including optional nesting (parentDocumentId) and publishing logic (publish), plus no output schema or annotations, the 6-word description is insufficient. It omits return value semantics, hierarchical document relationships, and default behaviors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the structured schema already documents all parameters (title, text, collectionId, parentDocumentId, publish) adequately. The description adds no parameter-specific guidance, but the baseline score of 3 applies given the comprehensive schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Create') and resource ('document') and identifies the target system ('in Outline'), making the basic purpose clear. However, it does not distinguish from sibling tools like outline_update_document or outline_get_document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., when to create vs. update), nor does it mention prerequisites such as needing a valid collectionId or permissions to publish.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

outline_delete_documentC

Delete a document from Outline

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the document to delete

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Delete' implies a destructive operation, the description fails to specify whether deletion is permanent or reversible, whether it affects nested/child documents, or what error conditions might occur. For a destructive mutation tool, this lack of safety context is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at six words, front-loaded with the action verb. While efficient, it borders on under-specification given the destructive nature of the operation and lack of annotations. However, there is no redundant or wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with no annotations and no output schema, the description is incomplete. It omits critical information such as whether the deletion is permanent, what the return value indicates (success/failure), or whether the operation can be undone. The minimal text does not sufficiently cover the behavioral complexity of deletion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage (the 'id' parameter is fully documented in the schema), the baseline score is 3. The description adds no additional semantic context about the parameter (such as ID format or where to obtain it), but the schema adequately covers the single required input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (Delete), resource (document), and scope (from Outline), distinguishing it from sibling tools like create_document or update_document. However, it does not specify whether this is a permanent deletion, soft delete, or archival, which would help distinguish the specific deletion semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites such as requiring the document ID beforehand (from outline_get_document) or necessary permissions. It lacks explicit when-to-use or when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

outline_get_collectionC

Get information about a specific collection

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the collection to retrieve

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but fails to state whether this is read-only, what format the returned information takes, or whether it includes nested documents. The term 'information' is too generic to convey actual behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. However, given the lack of annotations and output schema, extreme brevity becomes a liability rather than a virtue—additional sentences are needed to explain return values and usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema or annotations, the description should explain what 'information' is returned and behavioral traits like permissions or error states. As a simple single-parameter retrieval tool, it requires minimal complexity, but the complete omission of return value description creates a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage ('The ID of the collection to retrieve'), so the baseline score is 3. The description adds no additional semantic context about the ID format or validation rules, but the schema adequately documents the single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the verb ('Get') and resource ('collection'), but uses vague phrasing ('information') that doesn't specify what data is returned—metadata, contents, or settings. It minimally distinguishes from outline_list_collections by specifying 'specific collection,' but doesn't clarify how it differs from document-related siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus outline_list_collections (which presumably lists all collections) or when to prefer outline_get_document. The description lacks prerequisites, error conditions, or workflow context despite the presence of closely related sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

outline_get_documentB

Get a specific document from Outline by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the document to retrieve

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Get' implies a read operation, the description fails to specify error behavior (e.g., what happens if the ID doesn't exist), whether this operation is idempotent, or any authentication/authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is optimally concise at 7 words. It front-loads the verb ('Get'), avoids redundancy with the schema, and contains no filler or tangential information. Every word serves to clarify the tool's scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (single required parameter, no nested objects, 100% schema coverage), the description is minimally adequate. However, it lacks mention of error cases (404 behavior) and given the absence of an output schema, could benefit from a brief note about the return structure to aid agent decision-making among the multiple document retrieval options.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage ('The ID of the document to retrieve'), establishing a baseline of 3. The description adds minimal semantic value beyond the schema—merely appending 'by ID'—without clarifying ID format (UUID, slug, etc.) or providing usage examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Get'), resource ('document from Outline'), and lookup method ('by ID'). However, it does not explicitly differentiate from sibling tools like outline_search_documents or outline_list_documents, which also retrieve documents but through different mechanisms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not indicate that this tool requires an exact ID (as opposed to searching), nor does it mention prerequisites like needing the document ID beforehand or what to do if the ID is unknown.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

outline_list_collectionsB

List all collections in Outline

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden but only specifies 'all' collections are returned. It lacks details on pagination behavior, response size limits, sorting order, or performance implications of listing all collections.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief (5 words) and front-loaded with the action. While efficient, it borders on underspecification given the lack of output schema and annotations that could provide necessary context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema or annotations, the description fails to compensate by describing the return format, collection object structure, or any rate limiting concerns. For a 'list all' operation, this omission of behavioral constraints leaves significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters with 100% schema coverage (trivially). The description doesn't need to elaborate on inputs, meeting the baseline expectation for parameter-less tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and clear resource ('collections in Outline'), distinguishing it from sibling 'outline_get_collection' (single retrieval) and 'outline_list_documents' (different resource). However, it doesn't explicitly clarify when to prefer this over the single-collection getter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'outline_get_collection' (for single collection retrieval) or any filtering considerations. No prerequisites or exclusion criteria are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

outline_list_documentsB

List documents from Outline, optionally filtered by collection

ParametersJSON Schema
NameRequiredDescriptionDefault
collectionIdNoOptional collection ID to filter documents
limitNoMaximum number of results to return (default: 25)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but fails to mention critical traits: whether the operation is read-only (implied but not explicit), what data structure is returned, pagination behavior beyond the limit parameter, or any rate limiting concerns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single-sentence description is extremely compact with no redundant words, front-loading the action 'List documents'. However, given the presence of sibling tools with similar purposes, the brevity may be excessive as it sacrifices necessary differentiation guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is inadequate given the tool ecosystem: it lacks an output schema and fails to explain the distinction between 'list' and 'search' functionality, which is critical for correct agent selection. For a tool with zero required parameters and multiple document-related siblings, more contextual guidance is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage with clear documentation for both 'collectionId' and 'limit' parameters. The description mentions filtering by collection, aligning with the schema, but adds no additional semantic context (e.g., explaining Outline's collection hierarchy) beyond what the schema already provides. Baseline 3 is appropriate given complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and resource 'documents from Outline', establishing the core function. However, it does not explicitly differentiate from the sibling tool 'outline_search_documents', leaving ambiguity about when to use listing versus searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'optionally filtered by collection' provides implied usage context for when filtering is needed. However, it lacks explicit guidance on when to prefer this tool over 'outline_search_documents' or 'outline_get_document', and states no prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

outline_search_documentsC

Search for documents in Outline

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query to find documents
limitNoMaximum number of results to return (default: 25)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description discloses no behavioral traits beyond the basic action. It fails to indicate whether the search covers document titles, body content, or both; how results are ranked; or whether the operation is read-only versus generating server load.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of a single, efficient sentence with no redundant words or tautology. However, given the lack of annotations and output schema, it may be overly terse, sacrificing necessary behavioral context for extreme brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should explain the search scope (titles vs. content), result format, or pagination behavior. It provides none of this context, leaving significant uncertainty about what the tool returns and how it behaves.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters (query and limit), clearly documenting their purpose and default values. The description adds no additional semantic information beyond what the schema already provides, meeting the baseline for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Search for documents in Outline' provides a clear verb (search) and resource (documents in Outline). However, it fails to distinguish this tool from sibling `outline_list_documents`, which also retrieves documents but likely without full-text search capabilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives like `outline_list_documents` or `outline_get_document`. It does not clarify that this tool is intended for full-text search queries rather than browsing or direct document retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

outline_update_documentC

Update an existing document in Outline

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the document to update
titleNoNew title for the document
textNoNew content for the document in Markdown format
publishNoWhether to publish the document

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but offers almost none. It doesn't clarify whether updates are partial (only changing provided fields) or full replacements, what happens if the ID doesn't exist, or whether the operation is idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is efficient and front-loaded, with no wasted words. However, given the lack of annotations and the mutation nature of the tool, it is overly terse—leaving crucial behavioral context unsaid that should have been included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an update operation with no annotations and no output schema, the description is inadequate. It fails to address error handling, partial vs. full update semantics, or the fact that only the 'id' parameter is required while others are optional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline score applies. The description adds no parameter-specific context (e.g., explaining what 'publish' means in Outline's workflow or Markdown format requirements), but the schema is comprehensive enough that this isn't a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update') and resource ('existing document in Outline'). The word 'existing' provides implicit distinction from the sibling 'outline_create_document', though it doesn't explicitly differentiate from delete or get operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance provided on when to use this versus siblings like outline_create_document or outline_get_document. No mention of prerequisites (e.g., needing to retrieve the document ID first) or whether partial updates are supported.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity: create, delete, get, list, search, and update operations target specific resources (documents or collections). The descriptions clearly differentiate each tool's function, making misselection unlikely.

Naming Consistency5/5

All tool names follow a consistent 'outline_verb_noun' pattern with snake_case throughout. The verbs (create, delete, get, list, search, update) are consistently applied to nouns (document, collection), providing a predictable and readable naming convention.

Tool Count5/5

With 8 tools, the server is well-scoped for managing documents and collections in Outline. Each tool earns its place by covering essential CRUD operations, listing, and search functionalities, avoiding both bloat and thin coverage.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for the domain: create, get, update, and delete for documents, plus get and list for collections, along with search and filtered listing. There are no obvious gaps that would cause agent failures in document management workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/HelicopterHelicopter/outline-mcp-server'

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