Skip to main content
Glama
Strands Agents MCP Server

Strands Agents MCP Server

Official

This MCP server provides curated documentation access to your GenAI tools via llms.txt files, enabling AI coding assistants to find pages by title and retrieve their contents.

Features

  • Document Search: Field-weighted BM25 ranking over page titles, URL paths, and llms.txt descriptions, extended to page content once a page is hydrated (fetched), so body terms become searchable

  • Section-Based Browsing: Browse document structure via table of contents, then fetch only the section you need - more token-efficient than retrieving full pages

  • Curated Content: Indexes documentation from llms.txt files with clean, human-readable titles

  • On-Demand Fetching: Lazy-loads full document content only when needed for optimal performance

  • Snippet Generation: Hydrates the top-ranked pages to provide contextual previews

  • Real URL Support: Works with actual HTTPS URLs while maintaining backward compatibility

Tool behavior

  • search_docs(query, k) ranks by page title, URL path, and llms.txt description, and by page content once a page has been hydrated. Both title-like keywords and body terms work; call fetch_doc to inspect a result's contents. The changelog index, which concatenates every release note, is ranked by title and description only.

  • Search scores are unbounded field-weighted BM25 values. They are useful only for ordering results from the same query; they are not probabilities and should not be compared across queries.

  • search_docs returns an empty list when no document matches. If a matched page cannot be fetched for its snippet, the result still includes the URL and title.

  • fetch_doc returns {"error": "...", "url": "...", "hint": "..."} for unsupported URLs, URLs that are not in the docs catalog (with the closest catalog URLs as suggestions), and unknown section IDs (with the valid sections); section is ignored when the full document is returned automatically. A catalog page that cannot be fetched is reported as a tool error (isError: true).

  • Both tools are annotated read-only and idempotent, and the server sends instructions telling clients when to use it and in which order to call the tools.

Related MCP server: mcp-a2a-documentation

Configuration

  • STRANDS_MCP_PREFETCH_ALL: when set to a truthy value (1, true, yes), the server prefetches and indexes all pages in the background at startup, so body-term search works immediately instead of only after a page has been hydrated by a prior query. Defaults to off. Prefetch is best-effort and eventually consistent: results may be title-only until background hydration completes.

Prerequisites

The usage methods below require uv to be installed on your system. You can install it by following the official installation instructions.

Installation

You can use the Strands Agents MCP server with 40+ applications that support MCP servers, including Amazon Q Developer CLI, Anthropic Claude Code, Cline, and Cursor.

Get started quickly with one-click installation buttons for popular MCP clients. Click the buttons below to install servers directly in your IDE:

Install in Kiro Install in Cursor Install in VS Code

Kiro example

See the Kiro documentation for instructions on managing MCP configuration.

In ~/.kiro/settings/mcp.json:

{
  "mcpServers": {
    "strands-agents": {
      "command": "uvx",
      "args": ["strands-agents-mcp-server"],
      "env": {
        "FASTMCP_LOG_LEVEL": "INFO"
      },
      "disabled": false,
      "autoApprove": ["search_docs", "fetch_doc"]
    }
  }
}

Q Developer CLI example

See the Q Developer CLI documentation for instructions on managing MCP configuration.

In ~/.aws/amazonq/mcp.json:

{
  "mcpServers": {
    "strands-agents": {
      "command": "uvx",
      "args": ["strands-agents-mcp-server"],
      "env": {
        "FASTMCP_LOG_LEVEL": "INFO"
      },
      "disabled": false,
      "autoApprove": ["search_docs", "fetch_doc"]
    }
  }
}

Claude Code example

See the Claude Code documentation for instructions on managing MCP servers.

claude mcp add strands uvx strands-agents-mcp-server

Cline example

See the Cline documentation for instructions on managing MCP configuration.

Provide Cline with the following information:

I want to add the MCP server for Strands Agents.
Here's the GitHub link: @https://github.com/strands-agents/harness-sdk/tree/main/strands-mcp
Can you add it?"

Cursor example

See the Cursor documentation for instructions on managing MCP configuration.

In ~/.cursor/mcp.json:

{
  "mcpServers": {
    "strands-agents": {
      "command": "uvx",
      "args": ["strands-agents-mcp-server"],
      "env": {
        "FASTMCP_LOG_LEVEL": "INFO"
      },
      "disabled": false,
      "autoApprove": ["search_docs", "fetch_doc"]
    }
  }
}

VS Code example

See the VS Code documentation for instructions on managing MCP configuration.

In your mcp.json file:

{
  "servers": {
    "strands-agents": {
      "command": "uvx",
      "args": ["strands-agents-mcp-server"]
    }
  }
}

Quick Testing

You can quickly test the MCP server using the MCP Inspector:

# For published package
npx @modelcontextprotocol/inspector uvx strands-agents-mcp-server

# For local development
npx @modelcontextprotocol/inspector python -m strands_mcp_server

Note: This requires npx to be installed on your system. It comes bundled with Node.js.

The Inspector is also useful for troubleshooting MCP server issues as it provides detailed connection and protocol information. For an in-depth guide, have a look at the MCP Inspector documentation.

Getting Started

  1. Install prerequisites:

  2. Configure your MCP client:

    • Choose your preferred MCP client from the installation examples above

    • Add the Strands Agents MCP server configuration to your client

  3. Test the connection:

    # For published package
    npx @modelcontextprotocol/inspector uvx strands-agents-mcp-server
    
    # For local development
    npx @modelcontextprotocol/inspector python -m strands_mcp_server
  4. Start using the documentation tools:

    • search_docs - Find relevant documentation with intelligent ranking

    • fetch_doc - Browse a page's structure and preamble, then read individual sections

    • The server automatically indexes curated content from llms.txt files

Server Development

git clone https://github.com/strands-agents/harness-sdk.git
cd harness-sdk/strands-mcp
python3 -m venv venv
source venv/bin/activate
pip3 install -e ".[dev]"

npx @modelcontextprotocol/inspector python -m strands_mcp_server

Running Tests

# Unit tests (fast, no network access required)
pytest tests/

# Integration tests (requires network access to strandsagents.com)
pytest tests_integ/ -v

# All tests
pytest tests/ tests_integ/ -v

To skip integration tests (e.g., in CI environments without network access):

SKIP_INTEG_TESTS=1 pytest tests_integ/

Contributing ❤️

We welcome contributions! See our Contributing Guide for details on:

  • Reporting bugs & features

  • Development setup

  • Contributing via Pull Requests

  • Code of Conduct

  • Reporting of security issues

Stay in touch with the team

Come meet the Strands team and other users on Discord

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Security

See CONTRIBUTING for more information.

Available Tools

2 tools
fetch_docA

Read documentation pages with smart sectioning for token efficiency.

Two modes of operation:

  1. TOC mode (omit section): Returns a table of contents with section IDs, titles, summaries, and the document's preamble so you can decide which part to read.

  2. Section mode (provide section): Returns the full markdown content of one section, identified by the ID from the TOC (e.g., "3" or "3.2").

For small documents (under ~8KB), the full content is returned directly regardless of mode, since sectioning would add overhead without benefit.

Recommended workflow:

  1. search_docs("your query") - find relevant URLs

  2. fetch_doc(uri="...") - see structure, preamble, and section summaries

  3. fetch_doc(uri="...", section="3") - read the section you need

Args: uri: Document URL (must be under https://strandsagents.com/). If empty, returns a catalog of all available document URLs with titles. section: Section ID from the TOC (e.g., "3" or "3.2"). Omit to get the table of contents.

Returns: When section is omitted (TOC mode): - url, title: Document metadata - preamble: Introductory text between page title and first section - sections: List of sections with id, level, title, summary, children

When section is provided:
- url, title: Document metadata
- section_id: Requested section ID
- section_title: Section heading text
- content: Full markdown content of the section

For small documents (under ~8KB):
- url, title: Document metadata
- document_small: true
- content: Full document content (returned automatically)

On error:
- error: Error description
- url: Requested URL

Errors are returned for unsupported URLs and failed page fetches. For
sectioned documents, unknown section IDs also return an error; `section`
is ignored when the full document is returned automatically.

Inputs: uri, section. Returns: result

search_docsA

Search the curated documentation catalog.

The catalog contains Strands Agents user guides, API reference pages, and examples. Ranking starts from document titles and also considers page content once a page has been fetched (hydrated), so both title-like keywords ("bedrock model", "MCP tools") and body terms ("guardrail", "temperature") work. The top results are fetched on demand to hydrate the index and provide content snippets.

Call fetch_doc with a result URL to read the page or one of its sections.

Args: query: Search query string (e.g., "bedrock model", "tell me about a2a", "how to use MCP tools") k: Maximum number of results to return (default: 5)

Returns: List of dictionaries containing: - url: Document URL - title: Display title - score: Unbounded weighted TF-IDF score. Higher is better within this result set; do not interpret it as a probability or compare it across different queries. - snippet: Contextual content preview

Returns an empty list when no document matches. If a result page
cannot be fetched, its title is used as the snippet.

Inputs: query (required), k. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.5/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools have clearly distinct purposes: search_docs discovers relevant documentation URLs, while fetch_doc reads a specific page or section. The descriptions explicitly document the recommended search-then-fetch workflow, leaving little ambiguity.

    Naming Consistency5/5

    Both tool names follow a consistent verb_noun snake_case pattern: search_docs and fetch_doc. The slight singular/plural difference is natural and does not create confusion.

    Tool Count4/5

    Two tools is slightly below the typical 3-15 range, but for a focused documentation search-and-read server this is a clean, well-scoped surface. Each tool clearly earns its place.

    Completeness5/5

    The server covers the full retrieval lifecycle: search for documents, list catalog URLs, inspect document structure via TOC, and read specific sections or full small documents. No obvious documentation-access gaps remain.

    Maintenance

    ActivityActive
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to search, read, and traverse documentation bundles in Open Knowledge Format via MCP tools.
      674 npm
      74
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Search and retrieve Agent2Agent (A2A) protocol documentation using full-text search and section filtering.
      2
      MIT