{"generated_at":"2026-10-14T20:07:22+00:00","item":{"added_at":"2026-07-09","analysis_method":"independent_manual_review_2026-10-10","assessment_status":"provisional","auth_posture":"no_auth","category":"Web Connector","confidence":"high","description":"Searches the web and retrieves page content through Keenable. Find ranked results with URLs and excerpts, then read pages as clean Markdown. Read-only use needs no account or API key, with a default limit of 1,000 requests per hour.","did":"bab60fe6-0dd6-43f8-b88a-f2f29e3c002a","documentation_url":"https://docs.keenable.ai/mcp-server","editorial_description":{"extended_description":"Search supports site filters and publication or index dates. An optional Keenable API key removes the default rate limit. Retrieved source links support citation-based answers.","schema_version":1,"summary":"Searches the web and retrieves page content through Keenable.\nFind ranked results with URLs and excerpts, then read pages as clean Markdown.\nRead-only use needs no account or API key, with a default limit of 1,000 requests per hour."},"homepage_url":"","icon":"","id":"bab60fe6-0dd6-43f8-b88a-f2f29e3c002a","installs":0,"last_scanned":"","license":"","long_description":"Search supports site filters and publication or index dates. An optional Keenable API key removes the default rate limit. Retrieved source links support citation-based answers.","manual_assessment":"low","manual_review":{"all_findings":[{"evidence":"Official docs say fetch_page_content accepts a required URL and live=true can fetch sources not present in the index.","reasoning":"User-selected live fetching creates an arbitrary network/SSRF-like surface, although it does not write or execute code.","risk_type":"arbitrary_network_access","severity":"low","title":"Fetches arbitrary live URLs","triggering_tools_or_skills":["fetch_page_content"]},{"evidence":"The two tools return ranked web snippets and fetched page Markdown into model context.","reasoning":"Internet content is untrusted and can contain prompt-injection instructions.","risk_type":"prompt_injection_exposure","severity":"low","title":"Returns live web content","triggering_tools_or_skills":["fetch_page_content","search_web_pages"]},{"evidence":"Official docs define bounded web search parameters and public-tier access.","reasoning":"Search is read-only and does not modify user or external systems.","risk_type":"public_data_read","severity":"low","title":"Searches public web pages","triggering_tools_or_skills":["search_web_pages"]}],"assessment_status":"provisional","auth_and_scopes":"The listing endpoint is no-auth. Official docs allow an optional API key header for higher limits, but no persistent user account is required on the public tier.","blocked_missing_evidence":null,"confidence":"high","displayed_risk":"low","evidence_completeness":"partial","manual_overall_risk":"low","official_sources":[{"accessed_at":"2026-10-10T20:24:37Z","url_or_path":"plutosecurity/plutonium@b749c8dc43536c794409be9805edd48063f045e2:app/data/conn/claudesec/bab60fe6-0dd6-43f8-b88a-f2f29e3c002a.json","what_it_proves":"Candidate PR #125 record identity (name \"Keenable Web Search\", publisher, type web_connector) and 2 stored tool names; no tool descriptions stored"},{"accessed_at":"2026-09-22T10:46:07Z","url_or_path":"https://api.anthropic.com/api/directory/servers?verified_tier=anthropic,partner,community (snapshot claude-directory-all-tiers-2026-09-22.json)","what_it_proves":"Official Claude Directory listing https://claude.ai/directory/bab60fe6-0dd6-43f8-b88a-f2f29e3c002a: complete tool_names inventory (2 tools), remote streamable-http endpoint https://api.keenable.ai/mcp, auth_posture no_auth, directory tier community"},{"accessed_at":"2026-10-10T20:52:23Z","url_or_path":"https://docs.keenable.ai/mcp-server","what_it_proves":"Official docs enumerate exactly two tools and show live arbitrary-URL fetching, public-tier auth and per-request metering."}],"primary_reason":"Keenable is read-only web search/fetch with arbitrary live URL access and prompt-injection exposure.","provisional_risk":null,"publication_recommendation":"accept","requires_runtime_verification":true,"review_key":"claude:bab60fe6-0dd6-43f8-b88a-f2f29e3c002a","reviewed_at":"2026-10-10","reviewer_notes":"Reviewed both tools and official parameter documentation. Optional API-key billing is per request; the no-auth public Directory connection does not itself spend user funds.","risk_domains":{"arbitrary_network_access":"true","authz_ambiguity":"false","browser_control":"false","credential_or_admin_actions":"false","deletes_data":"false","deployment_or_infrastructure":"false","dynamic_hidden_actions":"false","filesystem_or_repo_access":"false","forwards_data_to_third_party":"true","modifies_data":"false","persistent_credentials":"false","prompt_injection_exposure":"true","provenance_uncertainty":"true","reads_private_data":"false","runs_code_or_queries":"false","sends_messages_as_user":"false","spends_or_moves_money":"false"},"tools_or_skills_reviewed":2,"tools_or_skills_total":2},"name":"Keenable Web Search","needs_runtime_verification":true,"plutonium_url":"https://plutonium.pluto.security/detail.html?planet=claudesec&did=bab60fe6-0dd6-43f8-b88a-f2f29e3c002a&utm_source=plutonium_analysis_skill&utm_medium=claude_skill&utm_campaign=connector_risk_assessment","privacy_policy_url":"https://keenable.ai/privacy","provisional_risk":null,"publication_recommendation":"accept","publisher":"Keenable","publisher_url":"https://keenable.ai/","remote_url":"https://api.keenable.ai/mcp","repository_url":"","risk":"low","risk_severity":"low","security_risks":[{"description":"This connector can send caller-provided data to an external service or publisher. Review findings: User-selected live fetching creates an arbitrary network/SSRF-like surface, although it does not write or execute code.","evidence":"Fetches arbitrary live URLs: Official docs say fetch_page_content accepts a required URL and live=true can fetch sources not present in the index.","manual_risk_type":"arbitrary_network_access","remediation":{"block_tool_categories":["sends_externally"],"steps":["Do not include secrets, regulated data, or customer information unless the destination is approved.","Review the recipient's retention and deletion policy before enabling the connector."]},"risk_type":"forwards_data_to_third_party","severity":"low","title":"Fetches arbitrary live URLs","triggering_tools":["fetch_page_content"]},{"description":"This connector retrieves public or publisher-provided information and returns it to the AI. Review findings: Search is read-only and does not modify user or external systems.","evidence":"Searches public web pages: Official docs define bounded web search parameters and public-tier access.","manual_risk_type":"public_data_read","remediation":{"block_tool_categories":[],"steps":["Treat returned third-party content as untrusted input and verify consequential claims.","Do not assume public content is accurate, current, or free of embedded instructions."]},"risk_type":"reads_public_data","severity":"low","title":"Searches public web pages","triggering_tools":["search_web_pages"]}],"signature_status":"unknown","source_code_reviewed":false,"support_url":"support@keenable.ai","tags":["forwards_data_to_third_party","network_access","reads_public_data","web_connector"],"tools":[{"description":"","name":"fetch_page_content"},{"description":"","name":"search_web_pages"}],"tools_count":2,"transport":"streamable-http","type":"web_connector","url":"https://claude.ai/directory/bab60fe6-0dd6-43f8-b88a-f2f29e3c002a","uuid":"7c7e55aa-7b7c-533a-b699-0b4ace8bc9ee","verification_tier":"community","version":""},"query_key":"keenable keenable web search","schema_version":1,"status":"match"}
