pleamo
Officialpleamo MCP server
pleamo の AI によるスパム/フィッシング URL チェックを MCP ツールとして公開し、あらゆる MCP クライアント(Claude Desktop、Cursor、独自エージェント)が、リンクを開いたり推奨したりする前に pleamo に「このリンクは安全か?」と問い合わせられるようにします。
これはホスト型 pleamo API への薄い認証付きプロキシです。すべてのチェックは、サービスを保護する同じユーザー単位およびグローバル単位の上限を経由します。
Tools
Tool | 機能 |
| URL を判定: 判定結果(safe/suspicious/dangerous)、深刻度、信頼度、理由 |
| 誤ってブロックされたドメインをレビュー用にフラグ付け |
| プランと本日の AI チェック使用量 |
Related MCP server: Verdict
Setup
pleamo API キーを取得します(
https://dash.pleamo.app/keysのダッシュボードから取り消し可能なキーを取得)。MCP クライアントをこのサーバーに向けます。Claude Desktop の場合は、
claude_desktop_config.jsonに追加します:
{
"mcpServers": {
"pleamo": {
"command": "npx",
"args": ["-y", "pleamo-mcp"],
"env": {
"PLEAMO_TOKEN": "your-api-key-here"
}
}
}
}クライアントを再起動します。すると、"このリンクを pleamo でチェック: https://paypa1-login.example" のように言えば、エージェントが check_url を呼び出します。
Environment
Var | Default | Notes |
| — | 必須。pleamo API の Bearer トークン。 |
|
| ローカル開発用の上書き(例: |
Develop
npm install
npm run verify # lint + format + unit tests
npm start # runs the stdio server (expects an MCP client on stdin)簡単な stdio スモークテスト(ツール一覧を表示):
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
| node src/server.jsRemote (hosted) alternative
クライアントが リモート MCP サーバー をサポートしている場合、このローカルプロセスは不要です。ホスト型エンドポイントに直接接続してください:
https://dash.pleamo.app/api/mcpこれは HTTP 上の JSON-RPC を話し(同じ 3 つのツール)、pleamo API キー を Bearer トークンとして認証します。https://dash.pleamo.app/keys で取り消し可能なキーを作成してください。このローカル stdio サーバーは、stdio のみを話すクライアント(例: 現在の Claude Desktop)向けです。
Notes
認証 / トークン — ダッシュボード(
/keys)から取り消し可能な API キー を取得し、PLEAMO_TOKENとして設定します。(生のセッショントークンも機能しますが、キーが正しく取り消し可能な選択肢です。)トランスポート — このパッケージは stdio です。上記のホスト型
/api/mcpはリモートの Streamable-HTTP バリアントです。もう一方の MCP 方向 — 拡張機能 がユーザー自身のエージェント経由でチェックをルーティングできるようにする(BYO-via-MCP)ことは、拡張機能のソースとともに pleamo/pleamo-chrome-extension で追跡されています。
Available Tools
3 toolscheck_urlCheck a URL for scams / phishingA
Ask pleamo whether visiting a URL is likely a scam or phishing site. Returns a verdict (safe/suspicious/dangerous), severity, confidence, and a plain-English reason. Use before opening or recommending an unfamiliar link.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full URL to check, e.g. https://example.com/login |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden. It discloses the return format: 'verdict (safe/suspicious/dangerous), severity, confidence, and a plain-English reason.' This covers the key behavioral aspects of a read-only analysis tool. However, it does not mention any limitations, latency, or side effects (though none are expected). Overall, it provides adequate behavioral context but not exhaustive.
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 two sentences, front-loaded with the purpose and return details, followed by a concise usage recommendation. No redundant phrasing; every sentence adds value.
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 tool with one parameter, no output schema, and no annotations, the description covers purpose, usage, and return format. It does not explain edge cases (e.g., invalid URL) or interpret severity/confidence, but these are minor for a single-purpose checker. The description is complete enough for an agent to invoke correctly.
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 complete coverage (100%) for the single parameter 'url', with a clear description and an example. The tool description adds no additional meaning beyond the schema. Since baseline for high coverage is 3, this score 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 uses a specific verb ('Ask pleamo') and resource ('URL'), and explicitly states the tool's purpose: to determine if a URL is likely a scam or phishing site. It clearly distinguishes from siblings like report_false_positive and get_status by its focus on URL safety assessment.
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 explicit guidance on when to use the tool: 'Use before opening or recommending an unfamiliar link.' This gives clear context for usage. It does not explicitly mention alternatives or when not to use it, but the siblings are obviously different (report false positive, get status), so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusGet pleamo plan + usageA
Return the signed-in account's plan and today's AI-check usage.
| 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 the full burden. It clearly states that the operation returns data (plan and usage) and implies read-only behavior through the verb 'Return'. It also specifies the scope ('today's usage'), giving the agent a clear expectation. However, it does not disclose potential rate limits, error conditions, or authentication details beyond the implicit 'signed-in account' context.
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, front-loaded sentence that states the purpose and scope immediately. There is no wasted verbiage or redundancy. Every word contributes to the meaning.
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 low complexity (no parameters, no output schema, no annotations), the description fully covers what an agent needs to know: what the tool returns (plan and today's usage) and the implicit requirement of being signed in. The siblings are unrelated, so no extra context is necessary. It is complete for a simple status tool.
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 is empty. Per the rubric, a baseline of 4 is appropriate since there are no parameters to explain. The description adds no parameter information but doesn't need to, as none exist.
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 uses a clear verb ('Return') and identifies the exact resource ('signed-in account's plan and today's AI-check usage'). This unambiguously distinguishes it from siblings like check_url and report_false_positive, which serve very different purposes.
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 mention when to use this tool versus alternatives, nor does it provide any exclusions or conditions. It is a simple status query, so the context is implicit, but the lack of any sibling comparison or usage notes leaves this dimension at a basic level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_false_positiveReport a wrongly-flagged siteA
Tell pleamo a domain was flagged incorrectly, so it can be reviewed and corrected.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional context for the reviewer | |
| domain | Yes | The domain that was wrongly flagged, e.g. example.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses that the action is a submission for review and correction, implying it's non-destructive and asynchronous. However, it does not state what happens after submission (e.g., response, confirmation) or any side effects, leaving some ambiguity for a mutation-like action.
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?
One sentence carries the full purpose with no wasted words. It's front-loaded with the action and intent, making it easy to scan.
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 reporting tool with two parameters and no output schema, the description covers the essential context: what to report and why. It doesn't explain the return value or next steps, but these are not critical for a submission action.
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%, so the schema already documents both parameters. The description does not add semantic detail beyond what the schema provides, meeting the baseline for full 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 action ('tell pleamo a domain was flagged incorrectly') and the resource (domain), distinguishing it from siblings like check_url and get_status by its reporting intent. The title and description align without tautology.
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 clear context for when to use this tool (when a domain was wrongly flagged) and implies the expected outcome (review and correction). It does not explicitly name alternatives or exclusions, but the purpose is unambiguous enough to route an agent correctly.
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.
3 tool updates
v1.0.0- First observed
check_url - First observed
get_status - First observed
report_false_positive
TDQS
Scored across 3 tools
Each tool serves a clearly distinct purpose: check_url analyzes a URL, report_false_positive submits a correction, and get_status returns account information. There is no meaningful overlap or ambiguity among the three.
All tool names follow the same verb_noun pattern using snake_case: check_url, report_false_positive, get_status. This makes the tool set predictable and easy to navigate.
With only three tools, the server is tightly scoped to its purpose: URL safety checking, correction feedback, and account status. Each tool earns its place and the count is appropriate for such a focused service.
The tool set covers the core workflow: checking URLs, reporting incorrect verdicts, and checking usage/plan status. There are no obvious dead ends or missing operations for the stated domain.
Maintenance
Related MCP Connectors
PhishTank MCP — wraps PhishTank API (checkurl.phishtank.com)
Scam and phishing detection for AI agents: safe/warn/danger verdicts for URLs and messages.
URLhaus MCP — wraps abuse.ch URLhaus malware URL database (free, no auth)
URL risk evidence with scoped OAuth/API keys, capped prepaid costs and up to ten URLs per batch.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables checking suspicious URLs for risk without opening them, providing full checkups and lookalike detection.MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to check suspicious text, emails, marketplace listings, job offers, investment pitches, and links through MCP tools, returning an assessment with supporting checks and next-step guidance.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to scan a URL, receive Markdown or JSON launch-page grades, retrieve ranked fixes, and inspect the full weighted checklist.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to look up domains, URLs, IPs/ASNs, email addresses, phone numbers, crypto wallets, and business records; run autonomous investigations; collect crawl artifacts; and perform evidence-backed scam checks with traceable provenance.MIT