Skip to main content
Glama
patternfly

PatternFly MCP Server

Official
by patternfly

PatternFly MCP Server

A Model Context Protocol (MCP) server that provides access to PatternFly rules and documentation, built with Node.js.

The PatternFly MCP server is a comprehensive library resource for PatternFly. It is intended to be extensible to meet the needs of different teams and projects, from simple to complex, from design to development. Read more about our roadmap and how we've structured the server in our architecture docs.

Requirements

Related MCP server: PatternFly MCP Server

Quick start

The PatternFly MCP Server supports multiple configurations; see the usage documentation for details.

For integrated use with an IDE

Set a basic MCP configuration

Unable to update to the required Node.js version? See pinned MCP configuration examples for earlier Node.js versions.

Minimal configuration

{
  "mcpServers": {
    "patternfly-mcp": {
      "command": "npx",
      "args": ["-y", "@patternfly/patternfly-mcp@latest"],
      "description": "PatternFly rules and documentation"
    }
  }
}

HTTP transport mode

{
  "mcpServers": {
    "patternfly-mcp": {
      "command": "npx",
      "args": ["-y", "@patternfly/patternfly-mcp@latest", "--http", "--port", "8080"],
      "description": "PatternFly rules and documentation (HTTP transport)"
    }
  }
}

See the MCP Server Configuration documentation for more examples.

For development, advanced usage

Run the latest released server

Run the latest published package immediately via npx:

npx -y @patternfly/patternfly-mcp@latest

Or with options

npx -y @patternfly/patternfly-mcp@latest --log-stderr --verbose

Run a locally built server

# clone the repo, change the directory, npm install, npm run build, then in the repo context run...
npm start

Inspect the server

Visualize and test the packaged MCP interface:

npx -y @modelcontextprotocol/inspector npx -y @patternfly/patternfly-mcp@latest

Build from source and test a local built MCP interface:

# clone the repo, change the directory, npm install, npm run build, then in the repo context run...
npx -y @modelcontextprotocol/inspector node dist/cli.js

Embed the server in your application

import { start } from '@patternfly/patternfly-mcp';

// Remember to avoid using console.log and info, they pollute STDOUT
async function main() {
  const server = await start();

  // Graceful shutdown
  process.on('SIGINT', async () => {
    await server.stop();
    process.exit(0);
  });
}

main();

See the development documentation for additional examples, CLI and embedded server options.

Documentation

For comprehensive usage, development, and project state read the docs.

Security & Governance

See SECURITY.md for vulnerability reporting and GOVERNANCE.md for how contributions are reviewed.

Contributing

Contributing? Guidelines can be found here CONTRIBUTING.md.

AI agent

If you're using an AI assistant to help with development in this repository, please prompt it to review the repo guidelines to ensure adherence to project conventions.

Guidelines for developer-agent interaction can be found in CONTRIBUTING.md.

Available Tools

2 tools
searchPatternFlyDocsA

Search collections and get component names with documentation and guidance URLs. Supports case-insensitive partial, version-specific (e.g., "card v5"), and all ("*") matches.

  **Usage**:
    1. Input a "searchQuery" to find documentation and guideline URLs, resource URIs, and component names.
    2. Use the returned resource names OR URLs OR URIs OR version with the "usePatternFlyDocs" tool to get markdown documentation, guidelines, and component JSON schemas.

  **Returns**:
    - Component and resource names that can be used with "usePatternFlyDocs"
    - Documentation and guideline URLs that can be used with "usePatternFlyDocs"
    - Resource URIs that can be used with "usePatternFlyDocs" or directly as MCP resources
  
ParametersJSON Schema
NameRequiredDescriptionDefault
collectionNoFilter results by a primary collection of records (e.g. "patternfly-api", "patternfly-component-schemas", "patternfly-docs", "ai-handbook")
searchQueryYesCase-insensitive query for full or partial keywords, resource names, versions and more (e.g., "button", "card v6", "react", "*")

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It does characterize matching behavior (case-insensitive partial, version-specific like "card v5", wildcard "*") and enumerates the return categories, but it says nothing about result limits, pagination, or the read-only nature of the call.

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?

Front-loaded with the core purpose, then structured Usage and Returns sections. Slightly repetitive in listing 'names OR URLs OR URIs OR version', but every section is short and carries information.

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

Completeness4/5

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

With no output schema, the Returns section usefully enumerates what comes back and how each value type is consumed downstream. Combined with the workflow steps, an agent has enough to call the tool correctly; only pagination/limit behavior is missing.

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 both parameters are already documented in the schema. The description echoes the query semantics (partial keywords, versions, "*") but adds little syntax beyond what the schema examples already provide.

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 first sentence states a specific verb and resource: searching collections to retrieve component names plus documentation and guidance URLs. It also names the downstream sibling usePatternFlyDocs, so the agent can distinguish this discovery tool from the retrieval tool, though it doesn't explicitly say what this tool is NOT for.

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

Usage Guidelines5/5

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

A numbered usage section gives explicit workflow steps: supply searchQuery, then feed the returned names/URLs/URIs/versions into usePatternFlyDocs. The when-to-use condition and the handoff to the sibling are both spelled out.

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

usePatternFlyDocsA

Get markdown documentation and component JSON schemas for PatternFly resources and components.

  **Usage**:
    1. Input a component or resource name (e.g., "Button", "Writing") OR a list of up to 15 patternfly:// URIs or documentation URLs at a time (typically from searchPatternFlyDocs results).

  **Returns**:
    - Markdown documentation
    - Component JSON schemas, if available
  
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoThe name of a PatternFly component or patternfly:// URI resource to fetch documentation for (e.g., "Button", "patternfly://docs/Button")
urlListNoThe list of patternfly:// URIs or URLs to fetch the documentation from (max 15 at a time)
versionNoFilter results by a specific collection version (e.g. "v5", "v6")

TDQS

A3.6/5.0
Behavior3/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. It does disclose the output shape (markdown docs, optional component JSON schemas) and the 15-item batch cap, but says nothing about authentication, rate limits, error behavior, or read-only status beyond the implied 'Get'.

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?

Front-loaded with a clear one-sentence purpose, then bolded Usage and Returns sections. Slightly header-heavy for a three-field tool, but every block conveys actionable information and there is no filler.

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?

Return values are summarized, which matters since there is no output schema. However, the description omits the version filter entirely and does not clarify what happens if both name and urlList are supplied or if neither is (0 required parameters) — a real gap given the schema allows an empty call.

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 schema already documents name, urlList, and version thoroughly, including examples and the max-15 constraint. The description repeats the input forms but adds no new semantics, and it never mentions the version parameter at all.

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?

States a specific verb and resource: fetch markdown documentation and component JSON schemas for PatternFly components. The relationship to searchPatternFlyDocs is hinted at ('typically from searchPatternFlyDocs results'), suggesting this is the retrieval step after a search, but the distinction is not stated explicitly.

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

Usage Guidelines4/5

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

The Usage section clearly explains the two input modes (a name or a list of up to 15 URIs) and where the URIs come from (searchPatternFlyDocs results). It does not state when to prefer this tool over searchPatternFlyDocs, but the workflow context is clear.

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

Tool Schema Changelog

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

  1. 2 tool updatesv2.5.0
    • ChangedsearchPatternFlyDocs3 fields changed
      • addedInput schema / properties / collection
        Added value: +{
        +  "description": "Filter results by a primary collection of records (e.g. \"patternfly-api\", \"patternfly-component-schemas\", \"patternfly-docs\", \"ai-handbook\")",
        +  "type": "string"
        +}
      • changedInput schema / properties / searchQuery / description
        Previous value: -"Full or partial resource or component name to search for (e.g., \"button\", \"react\", \"*\")"New value: +"Case-insensitive query for full or partial keywords, resource names, versions and more (e.g., \"button\", \"card v6\", \"react\", \"*\")"
      • removedInput schema / properties / version
        Removed value: -{
        -  "description": "Filter results by a specific PatternFly version (e.g. \"current\", \"latest\", \"v6\")",
        -  "enum": [
        -    "current",
        -    "latest",
        -    "v6"
        -  ],
        -  "type": "string"
        -}
    • ChangedusePatternFlyDocs2 fields changed
      • changedInput schema / properties / version / description
        Previous value: -"Filter results by a specific PatternFly version (e.g. \"current\", \"latest\", \"v6\")"New value: +"Filter results by a specific collection version (e.g. \"v5\", \"v6\")"
      • removedInput schema / properties / version / enum
        Removed value: -[
        -  "current",
        -  "latest",
        -  "v6"
        -]
  2. 1 tool updatev2.0.1
    • ChangedusePatternFlyDocs5 fields changed
      • changedInput schema / properties / name / description
        Previous value: -"The name of a PatternFly component or resource to fetch documentation for (e.g., \"Button\", \"Table\", \"Writing\")"New value: +"The name of a PatternFly component or patternfly:// URI resource to fetch documentation for (e.g., \"Button\", \"patternfly://docs/Button\")"
      • changedInput schema / properties / urlList / description
        Previous value: -"The list of URLs to fetch the documentation from (max 15 at a time"New value: +"The list of patternfly:// URIs or URLs to fetch the documentation from (max 15 at a time)"
      • addedInput schema / properties / urlList / items / format
        Added value: +"uri"
      • addedInput schema / properties / urlList / items / maxLength
        Added value: +1500
      • addedInput schema / properties / urlList / items / minLength
        Added value: +11
  3. 4 tool updatesv1.1.0
    • RemovedcomponentSchemas
    • RemovedfetchDocs
    • AddedsearchPatternFlyDocs
    • ChangedusePatternFlyDocs5 fields changed
      • addedInput schema / properties / name
        Added value: +{
        +  "description": "The name of a PatternFly component or resource to fetch documentation for (e.g., \"Button\", \"Table\", \"Writing\")",
        +  "maxLength": 256,
        +  "type": "string"
        +}
      • changedInput schema / properties / urlList / description
        Previous value: -"The list of urls to fetch the documentation from"New value: +"The list of URLs to fetch the documentation from (max 15 at a time"
      • addedInput schema / properties / urlList / maxItems
        Added value: +15
      • addedInput schema / properties / version
        Added value: +{
        +  "description": "Filter results by a specific PatternFly version (e.g. \"current\", \"latest\", \"v6\")",
        +  "enum": [
        +    "current",
        +    "latest",
        +    "v6"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "urlList"
        -]
  4. 3 tool updatesv1.0.0
    • First observedcomponentSchemas
    • First observedfetchDocs
    • First observedusePatternFlyDocs

TDQS

A3.9/5.0

Scored across 2 tools

Disambiguation4/5

The pair follows a clean search-then-fetch split: searchPatternFlyDocs returns names/URIs/URLs, usePatternFlyDocs consumes them. The only slight fuzziness is that 'usePatternFlyDocs' alone doesn't signal 'fetch content' without reading the description, but the two tools are not confusable in practice.

Naming Consistency5/5

Both names use camelCase with a verb+PatternFly+Docs structure (searchPatternFlyDocs, usePatternFlyDocs), giving a predictable, parallel pattern. No mixed conventions or vague one-word verbs.

Tool Count4/5

Two tools is deliberately minimal but justified: this is the canonical search/fetch pattern for a documentation server, and each tool has a distinct, non-redundant role. It sits at the thin end of the range but is well scoped.

Completeness4/5

Discovery (search, including wildcard and version-specific queries) plus retrieval of markdown docs and JSON schemas covers the core documentation use case with no dead ends. Minor gaps exist, such as no explicit enumeration of available versions or collections, but '*' search largely compensates.

Maintenance

ActivityActive
ResponsivenessWithin a week

Related MCP Connectors

  • Live React design-system APIs, patterns, and code validation so AI agents build real UI, not slop.

  • The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.

  • Patterns for designing and reviewing AI skills, agents, and multi-agent workflows. Find guidance on context economy, delegation, verification, and tool design; inspect claims, worked examples, maturity labels, and source references. Five read-only tools let agents discover relevant patterns, compare concise cards, read specific sections, and explore relationships. Hosted Streamable HTTP at https://agentic-atlas.dev/mcp/ — no installation, account, or API key required. Browse the atlas at https://agentic-atlas.dev/.

  • Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.

Related MCP Servers