DarkFunnels documentation
Server Details
Search and read the DarkFunnels docs: WhatsApp AI sales agents connected by QR, no Meta Cloud API.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- darkfunnels-ai/darkfunnels-mcp
- GitHub Stars
- 0
TDQS
Scored across 3 tools
The three tools serve clearly distinct purposes: the filesystem query tool provides shell-like read access to documentation pages, the search tool finds relevant content by keyword, and the feedback tool reports doc issues. There is no functional overlap, so an agent can easily select the right tool for the task.
All tool names follow a verb-first snake_case convention (query_, search_, submit_), but the first tool name is long and includes 'docs_filesystem' and 'dark_funnels', while the others are shorter. This is a minor deviation from a compact verb_noun pattern, but the pattern is still recognizable and mostly consistent.
With only 3 tools, the server is intentionally minimal, yet each tool is essential for the documentation domain: search, read, and feedback. The count feels slightly thin compared to richer documentation servers, but the filesystem tool is versatile enough to cover listing and reading, making 3 appropriate for the scope.
The tool surface covers the full lifecycle of documentation access: discovering content via search, reading full pages via the filesystem (including tree/ls for navigation), and submitting feedback for corrections. There are no obvious gaps; an agent can reliably answer questions and report issues without dead ends.
Available Tools
3 toolsquery_docs_filesystem_dark_funnelsARead-onlyIdempotentInspect
Run a read-only shell-like query against a virtualized, in-memory filesystem rooted at / that contains ONLY the DarkFunnels documentation pages. This is NOT a shell on any real machine — nothing runs on the user's computer, the server host, or any network. The filesystem is a sandbox backed by documentation chunks.
This is how you read documentation pages: there is no separate "get page" tool. To read a page, pass its .mdx path to head or cat — a page at the URL path /some/page lives at /some/page.mdx. To search the docs with exact keyword or regex matches, use rg. To understand the docs structure, use tree or ls.
Paths are specific to this site — never guess them. Discover real paths with tree / -L 2, ls /, or the search tool before reading. If a path does not exist, that only means the guess was wrong; it does NOT mean the topic is undocumented — use rg -il "keyword" / to find where it is covered.
Workflow: Start with the search tool for broad or conceptual queries like "how to authenticate" or "rate limiting". Use this tool when you need exact keyword/regex matching, structural exploration, or to read the full content of a specific page by path.
Supported commands: rg (ripgrep), grep, find, tree, ls, cat, head, tail, stat, wc, sort, uniq, cut, sed, awk, jq, plus basic text utilities. No writes, no network, no process control. Run --help on any command for usage.
Each call is STATELESS: the working directory always resets to / and no shell variables, aliases, or history carry over between calls. If you need to operate in a subdirectory, chain commands in one call with && or pass absolute paths (e.g., cd /some-directory && ls or ls /some-directory). Do NOT assume that cd in one call affects the next call.
Examples (replace the placeholder paths with real ones from tree or search):
tree / -L 2— see the top-level directory layoutrg -il "rate limit" /— find all files mentioning "rate limit"rg -C 3 "apiKey" /some-directory/— show matches with 3 lines of context around each hithead -80 /some/page.mdx— read the top 80 lines of a specific pagehead -80 /page-one.mdx /page-two.mdx /section/page-three.mdx— read multiple pages in one callcat /some/page.mdx— read a full page when you need everything
Output is truncated to 30KB per call. Prefer targeted rg -C or head -N over broad cat on large files. To read only the relevant sections of a large file, use rg -C 3 "pattern" /path/file.mdx. Batch multiple file reads into a single head or cat call whenever possible.
When referencing pages in your response to the user, convert filesystem paths to URL paths by removing the .mdx extension. For example, /some/page.mdx becomes /some/page.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | A shell command to run against the virtualized documentation filesystem (e.g., `rg -il "keyword" /`, `tree / -L 2`, `head -80 /path/file.mdx`). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, non-destructive, and closed-world, and the description aligns with all of them. It then adds substantial context beyond the annotations: the environment is a disconnected sandbox with no network/writes/process control, each call is stateless with the working directory resetting to `/`, output truncates at 30KB, and paths are site-specific and must be discovered. This is rich behavioral disclosure that materially affects how an agent calls it.
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 long but every section earns its place: sandbox nature, command list, statelessness caveats, path-discovery warning, workflow, examples, and truncation behavior. The safety and identity facts are front-loaded in the first paragraph, and the most crucial operational warning (never guess paths) comes early. Slightly verbose in the command enumeration, but the density justifies the length.
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?
There is no output schema, so the description must carry the return-format burden — and it does: 30KB truncation, how to convert file paths to URL paths in responses, and how to batch reads. Combined with the statelessness rules, path-discovery guidance, and real examples, an agent has everything needed to invoke the tool correctly on its first try.
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?
Schema coverage is 100% (single `command` parameter is described), so a baseline of 3 applies. The description adds meaning beyond the schema: a supported command list (rg, grep, find, tree, ls, cat, head, tail, stat, wc, sort, uniq, cut, sed, awk, jq), the `--help` hint, the `&&` chaining pattern for statelessness, and six worked examples. This goes well beyond the brief schema text, justifying a 4.
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 first sentence states a specific verb ('Run a read-only shell-like query') against a specific resource (a virtualized in-memory filesystem of DarkFunnels docs pages), and immediately distinguishes it from a real shell. It also differentiates from the sibling search_dark_funnels by framing this as the structural/exact-match reading tool, so an agent knows what it is vs. alternatives.
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 gives an explicit workflow: use search_dark_funnels for broad/conceptual queries and this tool for exact keyword/regex matching, structural exploration, or full-page reads. It even notes there is no separate 'get page' tool, eliminating ambiguity about how to read pages. When-to-use vs. when-not-to-use is stated directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_dark_funnelsSearch documentationARead-onlyIdempotentInspect
Search across the DarkFunnels knowledge base to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about DarkFunnels, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages. If you need the full content of a specific page, use the query_docs_filesystem tool to head or cat the page path (append .mdx to the path returned from search — e.g. a result at /some/page is read with head -200 /some/page.mdx).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| language | No | Filter to specific language code (e.g., 'zh', 'es'). Defaults to 'en' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive. The description adds useful behavioral context: the search returns 'contextual content with titles and direct links' and implies it does not return full page bodies, which is an important caveat. It also gives an explicit path to obtain full content via the filesystem tool.
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 efficiently structured: the first sentence defines the tool, the second gives usage criteria, the third describes the return format, and the fourth explains the alternative for full content. Every sentence earns its place with no filler or redundancy.
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 low-complexity search tool with read-only annotations, this description is complete. It covers what the tool does, when to use it, what it returns, and how to retrieve full page content when needed. The absence of an output schema is not a gap because the description explicitly states the return shape.
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?
Schema description coverage is 100%, so both the 'query' and 'language' parameters are already documented in the schema. The description adds no parameter-specific meaning beyond the general search behavior, which matches the baseline of 3 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 opens with a specific verb and resource: 'Search across the DarkFunnels knowledge base to find relevant information, code examples, API references, and guides.' It also states the scope of what search covers and differentiates itself from the query_docs_filesystem sibling by clarifying that search returns titles and links rather than page content.
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 explicitly says 'Use this tool when you need to answer questions about DarkFunnels, find specific documentation, understand how features work, or locate implementation details.' It also provides a clear alternative: 'If you need the full content of a specific page, use the query_docs_filesystem tool.' This gives the agent both the when-to-use and the 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.
submit_feedbackSubmit documentation feedbackAInspect
Report a problem with this documentation site so the docs team can fix it. Use when a documentation page is incorrect, outdated, confusing, incomplete, or has a broken example. This is for feedback about the documentation content itself — not for product support requests or feedback about this tool or assistant.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | The URL path of the documentation page the feedback is about (the page you were reading, without the `.mdx` extension). | |
| feedback | Yes | A clear description of the documentation issue or suggestion — what is incorrect, outdated, missing, or confusing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a write operation (readOnlyHint=false, idempotentHint=false), and the description adds meaningful context: feedback is routed to the docs team and is scoped to documentation content. It stops short of describing what happens after submission (e.g., whether a confirmation is returned, whether it creates an issue), but it does not contradict the annotations and provides useful behavioral framing.
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?
Three sentences, all informative. The first sentence states the purpose, the second gives concrete usage criteria, and the third excludes non-documentation feedback. No filler or redundancy; the most important information is front-loaded.
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 two-parameter tool with no output schema, the description and schema together cover the essential information: what to submit, which page, what kind of feedback, and when to use it. The only minor gap is the lack of detail about the post-submission result or confirmation behavior, which is not critical but would make it fully 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?
Schema description coverage is 100%, and the parameter descriptions already explain 'path' (URL path without .mdx extension) and 'feedback' (clear description of the issue). The tool description reinforces the kind of feedback expected but adds no technical semantics beyond the schema, so the baseline score of 3 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 clearly states the tool's function: 'Report a problem with this documentation site so the docs team can fix it.' It identifies the specific resource (documentation site) and the action (reporting a problem), and it distinguishes itself from the sibling query/search tools by being feedback-oriented. It also explicitly carves out what it is not for: product support or feedback about the tool/assistant.
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 gives explicit when-to-use guidance: 'Use when a documentation page is incorrect, outdated, confusing, incomplete, or has a broken example.' It also provides a clear when-not-to-use boundary: 'not for product support requests or feedback about this tool or assistant.' This is strong, actionable usage direction.
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 tool update
- Changed
submit_feedback1 field changed- changed
Input schema / properties / path / descriptionPrevious value: -"The documentation page path the feedback is about (e.g., the page you were reading, such as `/quickstart`)."New value: +"The URL path of the documentation page the feedback is about (the page you were reading, without the `.mdx` extension)."
3 tool updates
- First observed
query_docs_filesystem_dark_funnels - First observed
search_dark_funnels - First observed
submit_feedback
Related MCP Connectors
WhatsApp AI sales agent on your own number via QR, no Meta API: audit chats, edit playbook, orders.
WhatsApp CRM for AI agents: search contacts, read chats, manage the sales pipeline, send messages.
Give your AI agents a real WhatsApp number to send and receive messages.
Generate QR codes for URLs, PIX, Wi-Fi, vCards, WhatsApp and more. For AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceConnects AI assistants to the official Meta WhatsApp Cloud API for managing conversations and sending various message types through natural language. It provides tools for media management, template messages, and real-time webhook processing without the risk of account bans.186 npm23MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to send WhatsApp notifications to their owner and read the owner's replies through a local gateway, without requiring the Meta Business API.MIT
- AlicenseBqualityBmaintenanceEnables AI agents to control WhatsApp, including sending messages and media, reading chats, managing groups and communities, with QR/pairing auth and session persistence.1419 npm2MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to send WhatsApp messages, templates, and retrieve media through the WhatsApp Cloud API. Provides webhook handling and seamless integration with Meta's WhatsApp Business platform.23-
Glama MCP Gateway
Add one secure layer between your agents and this server.