passiv-mcp
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., "@passiv-mcpCheck the security headers on example.com"
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.
passiv-mcp
MCP server that gives AI agents free web tools — zero auth, zero dependencies.
Four tools, backed by the free APIs at mahope.tools:
Tool | What it does |
| Convert HTML to clean Markdown or plain text (max 50 KB/call) |
| 9-point EU compliance scan: privacy policy, terms, cookie consent, imprint, accessibility statement, DPA, security headers, meta tags, hreflang |
| Page profile: meta/OG tags, JSON-LD, heading structure, alt-text coverage, security headers, score + grade |
| CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy |
Listed in the official MCP Registry as io.github.mahope/passiv-mcp.
Works with any MCP client: Claude Desktop, Claude Code, Cursor, Windsurf, and others.
Install
No dependencies. Node.js 18+ required.
Run with npx (no install needed)
npx @mahope/passiv-mcpClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"passiv": {
"command": "npx",
"args": ["@mahope/passiv-mcp"]
}
}
}Claude Code
claude mcp add passiv -- npx @mahope/passiv-mcpRelated MCP server: AgenticForge MCP Server
Example prompts
Once connected, try:
"Convert this HTML snippet to Markdown: ……"
"Scan example.com for GDPR compliance basics"
"Check the security headers on my site"
"Profile this page and tell me what meta tags are missing"
Privacy
URLs sent to a tool are fetched server-side by the mahope.tools scan proxy and not stored.
HTML sent to html_to_markdown is converted and discarded immediately.
Related
Clean Copy — browser extension, same Markdown engine
clean-copy-cli — CLI version
compliance-site-check — GitHub Action with the compliance engine
Releasing
npm run release -- patch (or minor/major) bumps the version, commits and pushes the tag.
CI publishes to npm and creates the GitHub release.
License
MIT
Author
Built by Mads Holst Jensen — developer and technical partner for small businesses, Odense, Denmark. https://mahoje.dk
Available Tools
4 toolscheck_security_headersA
Check a URL for security headers: Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options and Referrer-Policy. Reports which are present/missing.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL to check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden. It does disclose a useful trait — that it reports which headers are present/missing — but omits whether it makes a live network fetch, how it handles unreachable URLs, timeout/rate behavior, and permissions. Adequate but incomplete for a zero-annotation 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?
Two tight sentences with zero filler; the enumerated header list is front-loaded and the reporting behavior is stated in a compact second clause.
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 one-parameter read tool this is close to sufficient: it names what is checked and that results are present/missing. Since no output schema exists, it could say more about the return structure (e.g., per-header status values), leaving a small gap.
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 single parameter's schema description ('Public URL to check') already conveys the 'public' constraint. The description adds no syntax, format, or semantic detail beyond the schema, so the baseline 3 applies.
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?
States a specific verb ('Check') and resource ('security headers') and even enumerates exactly which headers are inspected (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy), so the scope is unambiguous. However, it never distinguishes itself from the sibling compliance_scan, which plausibly overlaps with security-header auditing, so sibling differentiation is absent.
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?
Usage is only implied: an agent can infer it should be called when it has a URL whose security headers need auditing. There is no explicit statement of when to prefer this over compliance_scan or any prerequisite (e.g., that the page must be publicly reachable).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliance_scanA
Scan a website for 9 EU compliance essentials: privacy policy, terms, cookie consent, imprint, accessibility statement, DPA, security headers, meta tags, hreflang. Returns a score out of 100 plus pass/fail per check with fix tips.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL to scan, e.g. https://example.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the return shape (score out of 100, pass/fail per check, fix tips), which is genuinely useful behavioral context, but it says nothing about whether the scan is non-mutating, whether it requires the target site to be publicly reachable, rate limits, or latency/cost. Adequate but incomplete for a network-fetch 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?
Two sentences, front-loaded with the action and resource, then the enumerated checks and the return format. The nine-item list is dense but each item carries information; no filler sentences.
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?
No output schema exists, so the description must cover returns — and it does (score, pass/fail, fix tips). For a one-parameter read-only scanner that is nearly complete, with the remaining gap being preconditions/permissions and any notion of scan cost or rate limits.
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?
Single parameter with 100% schema description coverage, so the schema already documents the url field and gives an example. The description adds only the loose notion of 'a website' and no format, scheme, or constraint details beyond the schema, so baseline 3 applies.
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?
States a specific verb (Scan) and resource (a website) and enumerates the nine checks performed, which makes the scope concrete and largely separates it from check_security_headers (only one of the nine checks). However, it never explicitly names or contrasts with siblings, so an agent must infer the overlap itself.
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?
Usage is implied by the content ('EU compliance essentials'), which tells the agent roughly when this tool is relevant, but there is no explicit when-to-use statement and no guidance on choosing this over check_security_headers or the other siblings. Nothing is misleading, but nothing is stated either.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
html_to_markdownA
Convert HTML to clean Markdown or plain text. Same engine as the Clean Copy browser extension. Max 50 KB of HTML per call.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes | The HTML to convert. | |
| mode | No | markdown (default) keeps formatting; plain strips it all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It usefully discloses a hard input ceiling (50 KB per call), which is real operational context, but says nothing about how malformed HTML, scripts/styles, or oversized input are handled, nor what the failure mode looks like.
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 short sentences, zero filler, and the core conversion capability is front-loaded. Each sentence carries distinct information (capability, provenance, limit).
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 transform with no output schema, the definition covers what the tool does, its output modes, and its size constraint. It is nearly complete, with the only shortfall being unaddressed error/failure behavior for invalid or oversized input.
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 mode enum is already fully explained in the schema ('markdown (default) keeps formatting; plain strips it all'). The description's 'Markdown or plain text' adds nothing beyond that, so the baseline 3 applies.
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 pairs a specific verb (convert) with a specific resource (HTML) and names both output formats (Markdown, plain text). An agent knows exactly what this tool produces before opening the schema, and it is clearly distinct from the security/compliance siblings.
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?
There is no explicit statement of when to use this tool versus alternatives, nor any when-not guidance or prerequisites. The 'Clean Copy browser extension' reference is provenance trivia, not routing guidance, and the mode choice is left to the parameter schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profile_pageB
Profile a web page: title/meta description, Open Graph tags, JSON-LD structured data, heading structure, image alt coverage and security headers, with a weighted score and letter grade.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL to profile. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the response shape (a weighted score and letter grade), implying a read-only analyser, but says nothing about error behavior for unreachable/non-HTML URLs, redirect handling, timeouts, or rate limits, which are material for a network-fetching 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?
A single dense sentence, front-loaded with the verb and resource, and every clause names a real output dimension. It is appropriately sized, though the long comma-separated enumeration is slightly harder to scan than a short structured list.
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 one-parameter tool with no output schema or annotations, the description usefully compensates by enumerating the returned artifacts and the scoring model. Gaps remain around failure modes and scope limits (e.g., non-HTML or non-public URLs), but the core calling information is present.
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 single 'url' parameter is documented as 'Public URL to profile.' The description adds no extra meaning about URL format, scheme requirements, or what counts as 'public', so the schema does the heavy lifting.
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 names a specific verb ('Profile') and resource ('a web page') and enumerates the exact artifacts produced: title/meta, Open Graph, JSON-LD, headings, image alt coverage, security headers, plus a weighted score and letter grade. It clearly separates this from the narrow sibling check_security_headers by listing many more dimensions, but it never names or contrasts the siblings explicitly.
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?
There is no statement of when to use this tool versus check_security_headers, html_to_markdown, or compliance_scan, despite obvious overlap (security headers, page content extraction). Usage is only implied by the enumeration of outputs; no prerequisites or exclusions are given.
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.
4 tool updates
v1.2.1- First observed
check_security_headers - First observed
compliance_scan - First observed
html_to_markdown - First observed
profile_page
TDQS
Scored across 4 tools
The four tools have distinct primary purposes: security headers, HTML conversion, compliance scanning, and page profiling. However, there is some overlap: both compliance_scan and profile_page include security headers in their checks, and check_security_headers is a standalone tool for the same. This minor redundancy could cause confusion about which tool to use for security header information.
All tool names follow a consistent verb_noun or noun_noun pattern (check_security_headers, html_to_markdown, compliance_scan, profile_page). They are clear, descriptive, and use snake_case uniformly with no mixing of conventions.
Four tools is a reasonable number for a focused web analysis and conversion server. It covers distinct functionalities without bloat. Slightly on the lower side but adequate for the apparent scope.
The server covers several web page analysis and conversion tasks, but notable gaps exist: no tool for analyzing performance metrics, broken links, or SEO beyond compliance and profiling. More importantly, check_security_headers is subsumed by compliance_scan and profile_page, suggesting incomplete decomposition or redundant surface. However, for the listed core functionalities, the surface is complete.
Maintenance
Related MCP Connectors
Web tools for AI agents: scrape pages to Markdown, audit SEO, detect tech stacks, check sitemaps
Web data tools for AI agents: pages as markdown, search, maps, commerce, jobs, AI answers.
Read a URL as clean markdown, screenshot a website, url to PDF. Web access for agents, no signup.
Any web page as clean Markdown for agents. Hosted, no install. Free tier; Pro adds JS rendering.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMulti-tool MCP server for AI agents with 29 tools across web scraping, SEO analysis, screenshot and PDF generation, domain intelligence, content extraction, multi-chain EVM blockchain queries, and security toolkit. Free tier available with no auth required.12 npm1MIT
- AlicenseNot gradedqualityDmaintenanceMonetizable AI agent tools - document parsing, text analysis, code generation, security scanning, format conversion, and more. 8 tools with HTTP API and MCP protocol support.MIT
- AlicenseAqualityBmaintenanceProvides tools for AI agents to audit websites, including stack detection, DNS snapshots, and security checks.811 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to crawl and scrape websites, converting HTML to clean Markdown and structured metadata with support for JavaScript rendering, bot evasion, and SSRF protection.178MIT