PatternFly MCP Server
Provides tools for browsing, searching, and retrieving PatternFly React development rules and documentation, enabling AI agents to access comprehensive component guidelines, setup instructions, and best practices.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PatternFly MCP Server Fetch the PatternFly button component documentation."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PatternFly MCP Server
A Model Context Protocol (MCP) server that provides access to PatternFly React development rules and documentation, built with Node.js and TypeScript.
What is MCP?
The Model Context Protocol (MCP) is an open standard that enables AI assistants to securely access external data sources and tools. This server provides a standardized way to expose PatternFly documentation and development rules to MCP-compatible clients.
Related MCP server: Markdown Sidecar MCP Server
Features
TypeScript: Full type safety and modern JavaScript features
PatternFly Documentation Access: Browse, search, and retrieve PatternFly development rules
Comprehensive Rule Coverage: Access setup, guidelines, components, charts, chatbot, and troubleshooting documentation
Smart Search: Find specific rules and patterns across all documentation
Error Handling: Robust error handling with proper MCP error codes
Modern Node.js: Uses ES modules and the latest Node.js features
Prerequisites
Node.js 18.0.0 or higher
npm (or another Node package manager)
Installation
Local development
Install dependencies:
npm installBuild the project:
npm run buildRun in watch/dev mode (TypeScript via tsx):
npm run start:devUse via npx (after publishing)
npx @jephilli-patternfly-docs/mcpOr install locally in a project and run:
npm install @jephilli-patternfly-docs/mcp
npx @jephilli-patternfly-docs/mcpScripts
These are the most relevant NPM scripts from package.json:
build: Build the TypeScript project (cleans dist, type-checks, bundles)build:clean: Remove distbuild:watch: Build in watch modestart: Run the built server (node dist/index.js)start:dev: Run with tsx in watch mode (development)test: Run linting, type-check, and unit tests in src/test:dev: Jest watch mode for unit teststest:integration: Build and run integration tests in tests/test:integration-dev: Watch mode for integration teststest:lint: Run ESLint (code quality checks)test:lint-fix: Run ESLint with auto-fixtest:types: TypeScript type-check only (no emit)
Usage
The MCP server communicates over stdio and provides access to PatternFly documentation through the following tools. Both tools accept an argument named urlList which must be an array of strings. Each string is either:
An external URL (e.g., a raw GitHub URL to a .md file), or
A local file path (e.g., documentation/.../README.md). When running with the --docs-host flag, these paths are resolved under the llms-files directory instead.
Returned content format:
For each entry in urlList, the server loads its content, prefixes it with a header like:
# Documentation from <resolved-path-or-url>and joins multiple entries using a separator:\n\n---\n\n.If an entry fails to load, an inline error message is included for that entry.
Tool: usePatternFlyDocs
Use this to fetch high-level index content (for example, a local README.md that contains relevant links, or llms.txt files in docs-host mode). From that content, you can select specific URLs to pass to fetchDocs.
Parameters:
urlList: string[] (required)
Response (tools/call):
content[0].type = "text"
content[0].text = concatenated documentation content (one or more sources)
Tool: fetchDocs
Use this to fetch one or more specific documentation pages (e.g., concrete design guidelines or accessibility pages) after you’ve identified them via usePatternFlyDocs.
Parameters:
urlList: string[] (required)
Response (tools/call):
content[0].type = "text"
content[0].text = concatenated documentation content (one or more sources)
Docs-host mode (local llms.txt mode)
If you run the server with --docs-host, local paths you pass in urlList are resolved relative to the llms-files folder at the repository root. This is useful when you have pre-curated llms.txt files locally.
Example:
npx @jephilli-patternfly-docs/mcp --docs-hostThen, passing a local path such as react-core/6.0.0/llms.txt in urlList will load from llms-files/react-core/6.0.0/llms.txt.
MCP client configuration examples
Most MCP clients use a JSON configuration that tells the client how to start this server. The server itself does not read that JSON; it only reads CLI flags and environment variables. Below are examples you can adapt to your MCP client.
Minimal client config (npx)
{
"mcpServers": {
"patternfly-docs": {
"command": "npx",
"args": ["-y", "@jephilli-patternfly-docs/mcp@latest"],
"description": "PatternFly React development rules and documentation"
}
}
}Docs-host mode
{
"mcpServers": {
"patternfly-docs": {
"command": "npx",
"args": ["-y", "@jephilli-patternfly-docs/mcp@latest", "--docs-host"],
"description": "PatternFly docs (docs-host mode)"
}
}
}Local development (after build)
{
"mcpServers": {
"patternfly-docs": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/patternfly-mcp",
"description": "PatternFly docs (local build)"
}
}
}Inspector-CLI examples (tools/call)
Note: The parameter name is urlList and it must be a JSON array of strings.
usePatternFlyDocs (example with a local README):
npx @modelcontextprotocol/inspector-cli \
--config ./mcp-config.json \
--server patternfly-docs \
--cli \
--method tools/call \
--tool-name usePatternFlyDocs \
--tool-arg urlList='["documentation/guidelines/README.md"]'fetchDocs (example with external URLs):
npx @modelcontextprotocol/inspector-cli \
--config ./mcp-config.json \
--server patternfly-docs \
--cli \
--method tools/call \
--tool-name fetchDocs \
--tool-arg urlList='[
"https://raw.githubusercontent.com/patternfly/patternfly-org/refs/heads/main/packages/documentation-site/patternfly-docs/content/design-guidelines/components/about-modal/about-modal.md",
"https://raw.githubusercontent.com/patternfly/patternfly-org/refs/heads/main/packages/documentation-site/patternfly-docs/content/accessibility/components/about-modal/about-modal.md"
]'Environment variables
DOC_MCP_FETCH_TIMEOUT_MS: Milliseconds to wait before aborting an HTTP fetch (default: 15000)
DOC_MCP_CLEAR_COOLDOWN_MS: Default cooldown value used in internal cache configuration. The current public API does not expose a clearCache tool.
Programmatic usage (advanced)
The runServer function is exported via the package exports map. You can import it from the dedicated subpath or the package root.
Example (ESM):
// Prefer the public export subpath
import { runServer } from '@jephilli-patternfly-docs/mcp/server';
// Or from the package root (index.ts re-exports it)
import { runServer } from '@jephilli-patternfly-docs/mcp';
// Starts the MCP server and listens on stdio
await runServer();
// Server runs until interrupted (Ctrl+C)Returned content details
For each provided path or URL, the server returns a section:
Header:
# Documentation from <resolved-path-or-url>Body: the raw file content fetched from disk or network
Sections are concatenated with
\n\n---\n\n
This makes it easier to see where each chunk of content came from when multiple inputs are provided.
Publishing
To make this package available via npx, you need to publish it to npm:
Ensure you have an npm account and are logged in:
npm loginUpdate the version in package.json if needed:
npm version patch # or minor/majorPublish to npm:
npm publishAfter publishing, users can run your MCP server with:
npx @jephilli-patternfly-docs/mcpContributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
License
MIT License - see LICENSE file for details.
Resources
Available Tools
2 toolsfetchDocsA
Fetch documentation for one or more URLs extracted from previous tool calls responses. The URLs should be passed as an array in the "urlList" argument.
Inputs: urlList (required).
usePatternFlyDocsA
You must use this tool to answer any questions related to PatternFly components or documentation.
The description of the tool contains links to .md files or local file paths that the user has made available.
[@patternfly/AboutModal - Design Guidelines](https://raw.githubusercontent.com/patternfly/patternfly-org/refs/heads/main/packages/documentation-site/patternfly-docs/content/design-guidelines/components/about-modal/about-modal.md)
@patternfly/AboutModal - Accessibility @patternfly/Accordion - Design Guidelines @patternfly/Accordion - Accessibility @patternfly/ActionList - Design Guidelines @patternfly/ActionList - Accessibility @patternfly/Alert - Design Guidelines @patternfly/Alert - Accessibility @patternfly/ApplicationLauncher - Design Guidelines @patternfly/ApplicationLauncher - Accessibility @patternfly/Avatar - Design Guidelines @patternfly/Avatar - Accessibility @patternfly/BackToTop - Design Guidelines @patternfly/BackToTop - Accessibility @patternfly/Backdrop - Design Guidelines @patternfly/Backdrop - Accessibility @patternfly/BackgroundImage - Design Guidelines @patternfly/BackgroundImage - Accessibility @patternfly/Badge - Design Guidelines @patternfly/Badge - Accessibility @patternfly/Banner - Design Guidelines @patternfly/Banner - Accessibility @patternfly/Brand - Design Guidelines @patternfly/Brand - Accessibility @patternfly/Breadcrumb - Design Guidelines @patternfly/Breadcrumb - Accessibility @patternfly/Button - Design Guidelines @patternfly/Button - Accessibility @patternfly/CalendarMonth - Design Guidelines @patternfly/CalendarMonth - Accessibility @patternfly/Card - Design Guidelines @patternfly/Card - Accessibility @patternfly/Checkbox - Design Guidelines @patternfly/Checkbox - Accessibility @patternfly/ChipDeprecated - Design Guidelines @patternfly/ChipDeprecated - Accessibility @patternfly/ClipboardCopy - Design Guidelines @patternfly/ClipboardCopy - Accessibility @patternfly/CodeBlock - Design Guidelines @patternfly/CodeBlock - Accessibility @patternfly/CodeEditor - Design Guidelines @patternfly/CodeEditor - Accessibility @patternfly/Content - Design Guidelines @patternfly/Content - Accessibility @patternfly/DataList - Design Guidelines @patternfly/DataList - Accessibility @patternfly/DatePicker - Design Guidelines @patternfly/DatePicker - Accessibility @patternfly/DateTimePicker - Design Guidelines @patternfly/DateTimePicker - Accessibility @patternfly/DescriptionList - Design Guidelines @patternfly/DescriptionList - Accessibility @patternfly/Divider - Design Guidelines @patternfly/Divider - Accessibility @patternfly/DragAndDrop - Design Guidelines @patternfly/DragAndDrop - Accessibility @patternfly/Drawer - Design Guidelines @patternfly/Drawer - Accessibility @patternfly/Dropdown - Design Guidelines @patternfly/Dropdown - Accessibility @patternfly/DualListSelector - Design Guidelines @patternfly/DualListSelector - Accessibility @patternfly/EmptyState - Design Guidelines @patternfly/EmptyState - Accessibility @patternfly/ExpandableSection - Design Guidelines @patternfly/ExpandableSection - Accessibility @patternfly/FileUpload - Design Guidelines @patternfly/FileUpload - Accessibility @patternfly/Form - Design Guidelines @patternfly/Form - Accessibility @patternfly/FormControl - Design Guidelines @patternfly/FormControl - Accessibility @patternfly/FormSelect - Design Guidelines @patternfly/FormSelect - Accessibility @patternfly/HelperText - Design Guidelines @patternfly/HelperText - Accessibility @patternfly/Hint - Design Guidelines @patternfly/Hint - Accessibility @patternfly/Icon - Design Guidelines @patternfly/Icon - Accessibility @patternfly/InlineEdit - Design Guidelines @patternfly/InlineEdit - Accessibility @patternfly/InputGroup - Design Guidelines @patternfly/InputGroup - Accessibility @patternfly/JumpLinks - Design Guidelines @patternfly/JumpLinks - Accessibility @patternfly/Label - Design Guidelines @patternfly/Label - Accessibility @patternfly/List - Design Guidelines @patternfly/List - Accessibility @patternfly/LoginPage - Design Guidelines @patternfly/LoginPage - Accessibility @patternfly/Masthead - Design Guidelines @patternfly/Masthead - Accessibility @patternfly/Menu - Design Guidelines @patternfly/Menu - Accessibility @patternfly/MenuToggle - Design Guidelines @patternfly/MenuToggle - Accessibility @patternfly/Modal - Design Guidelines @patternfly/Modal - Accessibility @patternfly/Navigation - Design Guidelines @patternfly/Navigation - Accessibility @patternfly/NotificationBadge - Design Guidelines @patternfly/NotificationBadge - Accessibility @patternfly/NotificationDrawer - Design Guidelines @patternfly/NotificationDrawer - Accessibility @patternfly/NumberInput - Design Guidelines @patternfly/NumberInput - Accessibility @patternfly/OverflowMenu - Design Guidelines @patternfly/OverflowMenu - Accessibility @patternfly/Page - Design Guidelines @patternfly/Page - Accessibility @patternfly/Pagination - Design Guidelines @patternfly/Pagination - Accessibility @patternfly/Panel - Design Guidelines @patternfly/Panel - Accessibility @patternfly/Popover - Design Guidelines @patternfly/Popover - Accessibility @patternfly/Progress - Design Guidelines @patternfly/Progress - Accessibility @patternfly/ProgressStepper - Design Guidelines @patternfly/ProgressStepper - Accessibility @patternfly/Radio - Design Guidelines @patternfly/Radio - Accessibility @patternfly/SearchInput - Design Guidelines @patternfly/SearchInput - Accessibility @patternfly/Select - Design Guidelines @patternfly/Select - Accessibility @patternfly/Sidebar - Design Guidelines @patternfly/Sidebar - Accessibility @patternfly/SimpleList - Design Guidelines @patternfly/SimpleList - Accessibility @patternfly/Skeleton - Design Guidelines @patternfly/Skeleton - Accessibility @patternfly/SkipToContent - Design Guidelines @patternfly/SkipToContent - Accessibility @patternfly/Slider - Design Guidelines @patternfly/Slider - Accessibility @patternfly/Spinner - Design Guidelines @patternfly/Spinner - Accessibility @patternfly/Switch - Design Guidelines @patternfly/Switch - Accessibility @patternfly/Table - Design Guidelines @patternfly/Tabs - Design Guidelines @patternfly/Tabs - Accessibility @patternfly/TextArea - Design Guidelines @patternfly/TextArea - Accessibility @patternfly/TextInput - Design Guidelines @patternfly/TextInput - Accessibility @patternfly/TextInputGroup - Design Guidelines @patternfly/TextInputGroup - Accessibility @patternfly/TileDeprecated - Design Guidelines @patternfly/TileDeprecated - Accessibility @patternfly/TimePicker - Design Guidelines @patternfly/TimePicker - Accessibility @patternfly/Timestamp - Design Guidelines @patternfly/Timestamp - Accessibility @patternfly/Title - Design Guidelines @patternfly/Title - Accessibility @patternfly/ToggleGroup - Design Guidelines @patternfly/ToggleGroup - Accessibility @patternfly/Toolbar - Design Guidelines @patternfly/Toolbar - Accessibility @patternfly/Tooltip - Design Guidelines @patternfly/Tooltip - Accessibility @patternfly/TreeView - Design Guidelines @patternfly/TreeView - Accessibility @patternfly/Truncate - Design Guidelines @patternfly/Truncate - Accessibility @patternfly/Wizard - Design Guidelines @patternfly/Wizard - Accessibility @patternfly/Bullseye - Design Guidelines @patternfly/Flex - Design Guidelines @patternfly/Gallery - Design Guidelines @patternfly/Grid - Design Guidelines @patternfly/Level - Design Guidelines @patternfly/Split - Design Guidelines @patternfly/Stack - Design Guidelines @patternfly/Charts - Colors for Charts @patternfly/Charts - Target Chart @patternfly/Charts - Bar Chart @patternfly/Charts - Box Plot Chart @patternfly/Charts - Bullet Chart @patternfly/Charts - Donut Chart @patternfly/Charts - Donut Utilization Chart @patternfly/Charts - Line Chart @patternfly/Charts - Pie Chart @patternfly/Charts - Scatter Chart @patternfly/Charts - Sparkline Chart @patternfly/Charts - Stack Chart @patternfly/Charts - Threshold Chart @patternfly/Charts - Legend @patternfly/Charts - Tooltip @patternfly/react-charts @patternfly/react-chatbot @patternfly/react-component-groups @patternfly/react-components @patternfly/react-guidelines @patternfly/react-resources @patternfly/react-setup @patternfly/react-troubleshooting
1. Pick the most suitable URL from the above list, and use that as the "urlList" argument for this tool's execution, to get the docs content. If it's just one, let it be an array with one URL.
2. Analyze the URLs listed in the .md file
3. Then fetch specific documentation pages relevant to the user's question with the subsequent tool call.Inputs: urlList (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
usePatternFlyDocs and fetchDocs both accept a urlList and return documentation content, creating ambiguity about which to use for direct URL fetching. While usePatternFlyDocs is positioned as the entry point for answering questions, its ability to fetch specific URLs overlaps significantly with fetchDocs.
Both tool names follow a consistent verb_noun camelCase pattern (use + PatternFlyDocs, fetch + Docs), making the naming predictable and consistent.
At only two tools, the server is on the low end of tool counts. While the two tools could theoretically cover the documentation workflow, the set feels thin and relies heavily on one tool's massive description for navigation.
The server covers the core workflow of finding and fetching PatternFly documentation, with an extensive embedded list of URLs. However, there is no dedicated search or query tool, and the reliance on manual URL selection in prompts may create dead ends for unexpected questions.
Maintenance
Related MCP Connectors
Query any docs site via MCP. Submit a URL, ask questions, get cited answers.
Read versioned developer documentation with original source links using five public MCP tools.
Turn a GitHub repo or docs site into agent-ready context: pack it or search it, over MCP.
Read-only MCP server over the developer docs for the portfolio's JSON API, MCP, A2A and NLWeb.
Related MCP Servers
AlicenseAqualityBmaintenanceProvides access to PatternFly React documentation, development rules, and component schemas through MCP tools, enabling AI assistants to help developers build applications with PatternFly components following best practices.21,350 npm5MIT- AlicenseNot gradedqualityDmaintenanceProvides access to markdown documentation for local NPM, Go, and PyPi packages as MCP resources or tools. It enables informed code generation by surfacing documentation directly from a project's working directory.MIT
- AlicenseAqualityDmaintenanceProvides tools for AI agents to search, browse, and retrieve the full documentation for the mcp-framework. It enables agents to access documentation sections and page content directly within MCP-compatible environments like Claude Code and Cursor.37 npmMIT
- FlicenseNot gradedqualityDmaintenanceExposes NVIDIA Run:ai documentation and API references across multiple versions and docsets (self-hosted, SaaS, multi-tenant, API, legacy) through MCP tools.11 npm-