Polars Docs MCP
Provides tools to search and retrieve Polars API documentation, list components, verify API references, and get version information.
Click on "Install 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., "@Polars Docs MCPsearch Polars pl.col"
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.
Polars Docs MCP
A FastMCP tool to search and retrieve Polars API documentation with support for multiple transport methods.
Features
Automatically discover Polars public components (classes, functions, submodules).
Search Polars API by component or query string.
Get current Polars version and package information.
Returns structured JSON with API signatures and descriptions.
Support for multiple transport methods: STDIO, Streamable HTTP, and SSE.
Integrates with
mcpfor seamless LLM-powered workflows.
By leveraging Python's built‑in introspection to reflectively discover every public class, function, and submodule in Polars at runtime, I eliminate the cost, fragility, and maintenance burden of web‑scraping or managing an external documentation database. This approach guarantees 100% up‑to‑date accuracy with every library release, requires no complex text cleaning or embedding pipelines, and avoids the heavy infrastructure overhead of semantic search—making it both simpler and far more efficient for real‑time API lookup.
Related MCP server: MCP Server Builder
Usage
1. Claude Desktop Config (Recommended)
{
"mcpServers": {
"polarsapifinder": {
"command": "uv",
"args": [
"--directory",
"/PATH/TO/polars-docs-mcp",
"run",
"polarsdocsfinder.py"
]
}
}
}2. Manual Execution with Transport Options
STDIO (Default - Best for Claude Desktop)
python polarsdocsfinder.py
# or explicitly:
python polarsdocsfinder.py --transport stdioStreamable HTTP (Best for Web Deployments)
python polarsdocsfinder.py --transport streamable-http
# With custom settings:
python polarsdocsfinder.py --transport streamable-http --host 0.0.0.0 --port 8080 --path /api/mcpSSE (For Legacy Client Compatibility)
python polarsdocsfinder.py --transport sse
# With custom settings:
python polarsdocsfinder.py --transport sse --host 0.0.0.0 --port 9000Command Line Arguments
--transport: Choose transport method (stdio,streamable-http,sse) - Default:stdio--host: Host address for HTTP/SSE transports - Default:127.0.0.1--port: Port number for HTTP/SSE transports - Default:8111--path: URL path for streamable-http transport - Default:/mcp
3. Visual Testing of MCP Server
npx @modelcontextprotocol/inspector uv run polarsdocsfinder.py
Requires Python 3.11+.
Tool Endpoints
get_polars_version(): Get current Polars version and package information.list_polars_components(): List all high-level Polars API components.search_polars_docs(api_refs: list[str] | None, query: str | None, max_results: int = 1000): Search and retrieve API signatures.verify_polars_api(api_ref: str): Verify if a Polars API reference is valid.list_all_modern_data_stacks(): List modern data stacks compatible with Polars.
Transport Methods
STDIO (Default)
Best for: Claude Desktop, local tools, command-line scripts
Usage: Direct integration with Claude Desktop configuration
Communication: Standard input/output streams
Streamable HTTP
Best for: Web deployments, REST API integration, browser-based clients
Usage: Run as HTTP service, connect via HTTP requests
Communication: HTTP POST requests to the specified endpoint
SSE (Server-Sent Events)
Best for: Compatibility with existing SSE clients, real-time streaming
Usage: Legacy system integration
Communication: Server-sent events over HTTP
Examples Snapshots


Testing HTTP Transport
If running with HTTP transport, you can test the server:
# Start server
python polarsdocsfinder.py --transport streamable-http --port 8111
# Test with curl
curl -X POST http://127.0.0.1:8111/mcp \
-H "Content-Type: application/json" \
-d '{"method": "tools/list"}'License
This project is licensed under the MIT License. See the LICENSE file for details.
Contact
Created by ABC. Report issues or request features at https://github.com/HotTechStack/polars-docs-mcp/issues.
Available Tools
6 toolsdebug_polars_componentsA
Debug tool to show what components are discovered and their types
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral burden. It only states the tool shows discovered components and their types, but lacks detail on side effects, dependencies, or behavior when no components are found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is very concise and front-loaded, but could be slightly more structured. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and sibling context, the description is minimally adequate but lacks details on return format or what 'discovered' means. Could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, schema coverage is 100% (empty), so description adds no parameter info. Baseline score of 4 applies due to zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'show' and resource 'components', and specifies it's a debug tool, distinguishing it from sibling tools like list_polars_components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied as a debug tool, but does not explicitly state when to use it versus alternatives like list_polars_components. No when-not or precondition guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_polars_versionA
Get the currently installed Polars version information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full disclosure burden. It only states 'Get the currently installed Polars version information', implying a read-only operation, but does not disclose any behavioral traits such as caching, latency, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no extraneous words, making it highly concise and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter tool with no output schema, the description is minimally complete. However, it could benefit from specifying the return format (e.g., a version string) or mentioning that the tool is safe to call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters, schema coverage is trivial 100%. The description adds no meaning beyond the schema, meeting the baseline of 3 as per rules for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'Polars version information', making the tool's purpose immediately obvious. It can be easily distinguished from sibling tools like 'debug_polars_components' or 'list_polars_components'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when version information is needed, but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_all_modern_data_stacksB
List all modern data stacks that can be used with Polars.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully convey behavioral traits. It only states the action without disclosing any side effects, permissions, rate limits, or output nature. The term 'modern data stack' is undefined, which may lead to ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no extraneous information. It is concise but could benefit from slightly more detail to improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is minimally adequate. However, it fails to define what constitutes a 'modern data stack' or how it relates to sibling tools like list_polars_components, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description need not explain parameters, but it adds no contextual meaning beyond the name. A baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List all modern data stacks that can be used with Polars,' which clearly identifies the verb (list) and resource (modern data stacks). It differentiates from siblings like list_polars_components, which likely lists components rather than stacks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 its siblings. There is no mention of when not to use it or alternatives, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_polars_componentsA
List all available high‑level Polars API components
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It specifies a read-only listing operation, which is appropriate, but does not mention any potential side effects, permissions, or whether the list is exhaustive. The behavioral info is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence with no redundant words. It is front-loaded and efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description is adequate but lacks details about the return format (e.g., a list of strings, structure of each component). It does not explain what constitutes a 'high-level' component, which could be ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (vacuously). Per the guidelines, a baseline of 4 applies. The description adds no parameter information because none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List' and the resource 'all available high-level Polars API components'. It is specific and distinct from sibling tools like list_all_modern_data_stacks or debug_polars_components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. For example, when to choose list_polars_components over search_polars_api or verify_polars_api is not indicated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_polars_apiA
Search Polars API methods and documentation. Finds exact matches first, then falls back to fuzzy search.
| Name | Required | Description | Default |
|---|---|---|---|
| components | No | ||
| methods | No | ||
| max_results | No | ||
| debug | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the search behavior (exact match then fuzzy fallback), which is useful but limited. There are no annotations, so the description carries the full burden. It does not mention authentication requirements, rate limits, or the scope of the search (e.g., whether it searches all API docs or only specific components).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences that front-load the purpose and add a key behavior detail. Every sentence is informative with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, no annotations, and 0% schema coverage, the description is insufficient. It lacks details on parameter meanings, the format of results, and the scope of the search. An agent would struggle to use this tool effectively without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has four parameters with 0% description coverage, and the tool description does not explain any of them. The agent must infer that 'components' and 'methods' are search filters and 'max_results' limits results, but no specifics are provided. This is a significant gap for a search tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Polars API methods and documentation, with a specific verb 'Search' and resource. It distinguishes itself from sibling tools like list_polars_components (which lists) and get_polars_version (which gets a version), and adds detail about exact match followed by fuzzy fallback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. Usage is implied as a search function, but there are no exclusions or references to sibling tools. For example, it doesn't clarify that this should be used when looking for specific API methods, while list_polars_components is for listing all components.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_polars_apiB
Verify if a given Polars API name or signature is valid.
| Name | Required | Description | Default |
|---|---|---|---|
| api_ref | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, required permissions, or response format. The simple statement leaves ambiguity about what constitutes 'valid'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence with no unnecessary words. It is front-loaded and efficiently communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is too minimal. It omits details about what validation entails, edge cases, and expected outputs, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds that 'api_ref' is a 'Polars API name or signature', which provides more meaning than the raw schema. However, it does not explain format or examples, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('verify') and the object ('a given Polars API name or signature'), distinguishing it from sibling tools that list, search, or debug. It is specific and concise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., compare with search_polars_api). The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
All six tools have clearly distinct purposes: version info, component listing, debugging components, searching API, verifying API, and listing compatible data stacks. No overlapping functionality that would cause confusion.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_polars_components, search_polars_api). No mixing of conventions or inconsistent verb styles.
Six tools is well-scoped for a documentation-focused MCP server. Each tool addresses a distinct need (version, components, search, verification, etc.) without being too few or too many.
The surface covers the main documentation tasks: version checking, component listing, API search, verification, and debugging. A minor gap might be a specific function for fetching detailed documentation for a single API method, but search_polars_api likely covers that.
Maintenance
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
MCP server for querying Forkast documentation
Political Comms documentation MCP server: search docs, query the docs filesystem. No auth.
Search, document and execute authenticated API calls across 700+ apps via one MCP server
IEEE Xplore MCP — BYOK wrapper over the IEEE Xplore Metadata Search API
Related MCP Servers
- AlicenseAqualityDmaintenanceA remote MCP server providing a tool for searching and querying ATprotocol documentation, helping developers easily access information while building on the protocol.114Creative Commons Zero v1.0 Universal
- AlicenseAqualityCmaintenanceProvides searchable access to official MCP protocol specification and FastMCP framework documentation, helping developers build correct MCP servers by querying live documentation with BM25 full-text search.23MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to fetch, index, and perform semantic RAG-based searches on API documentation from various sources. It provides tools for hybrid search and collection management, allowing users to access up-to-date documentation from projects like Gemini and FastMCP.
- FlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server built with FastMCP that provides tools for web scraping and documentation searching.3
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/HotTechStack/polars-docs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server