Install
openclaw skills install @hhhwor/chukonu-web-search通过 Chukonu remote MCP 的 search 与 research 获取网页、学术、专利、金融和中国法律法规证据。用于需要外部、实时、可引用信息的搜索任务,以及财经新闻与金融研究、法律法规检索、事实核验、反证检索、PDF 全文深读、覆盖评估或持久化多轮研究;依据结构化 evidence、retrieval_assessment 与 research dossier 作答。
openclaw skills install @hhhwor/chukonu-web-search通过 Chukonu remote MCP 调用公开的 search 和 research 工具。无需本地二进制、API key 或静态 token;不要调用内部工具、上游服务或内部端口。法律法规检索是服务内部接入的 FY MCP provider,客户端不要单独配置它、传入其凭据或尝试调用其工具。
使用 https://search.houdutech.cn/web/mcp/ streamable-http 端点。该端点通过标准 OAuth 2.0 保护,采用动态客户端注册、授权码、PKCE(S256) 和 refresh token,scope 为 search:read。让 MCP host 自动发现并注册,不要手工填写 client ID 或 client secret。
OpenClaw:
openclaw mcp add chukonu-web-search \
--url https://search.houdutech.cn/web/mcp/ \
--transport streamable-http \
--auth oauth
openclaw mcp login chukonu-web-search
Claude Code:
claude mcp add chukonu-web-search https://search.houdutech.cn/web/mcp/ \
--scope user --transport http
# 然后在会话中:/mcp → chukonu-web-search → Authenticate
Codex:
codex mcp add chukonu-web-search --url https://search.houdutech.cn/web/mcp/
codex mcp login chukonu-web-search
codex mcp list
在 Codex TUI 中用 /mcp 查看连接状态。若 OAuth 浏览器与 Codex 不在同一主机,先为 Codex 配置可回调的 mcp_oauth_callback_url,再登录;不要输出或持久化授权码、回调 URL、access token 或 refresh token。
不要为该服务器配置静态 Authorization 头或 CHUKONU_SEARCH_API_TOKEN。静态 Authorization 头会使 host 禁用 OAuth 回退,并可能导致 401 invalid_token。把 OAuth token 完全交给 host 保管,不要在日志、回答、示例或错误信息中泄露。
search 处理秒级发现、法规定位和获取后续研究所需的 research_seed.search_id。research 处理关键主张核验、反证、跨来源冲突、全文定位或证据覆盖评估。必须先 search,再用返回的 search_id 启动任务。source_types 为 web、academic、patent、legal 和 financial。省略时服务自动路由;财经新闻归入 financial,法律意图可在法律 provider 启用时与通用网页并行召回。source_types: ["legal"] 只检索中国法律法规;用 source_types: ["legal", "web"] 同时获取法条和通用网页背景。source_types: ["financial"] 检索财经新闻和金融文档;宁夏服务已接入 nws_news 新闻库,其他金融来源取决于服务端配置。仅查金融时显式指定来源;需要网页原文或背景时用 ["financial", "web"]。research 的 profile: "financial_research";结构化股票数据是否可用要检查返回的 financial_plan,不能仅凭 profile 已接受就认定已启用行情查询。《中华人民共和国民法典》第1084条;仅把原始法条证据用于法律效力或条文结论。search最小调用:
{
"query": "固态电池硫化物电解质近五年的关键路线"
}
只检索现行有效的中国法规:
{
"query": "《中华人民共和国民法典》第1084条",
"limit": 10,
"source_types": ["legal"],
"filters": {
"legal_status": "现行有效",
"jurisdictions": ["CN"]
}
}
混合检索法条和网页解读:
{
"query": "劳动合同解除的法定情形和近期解读",
"source_types": ["legal", "web"],
"filters": {
"legal_status": "现行有效",
"languages": ["zh"]
}
}
只检索财经新闻和金融文档:
{
"query": "贵州茅台 分红",
"source_types": ["financial"],
"filters": {
"published_from": "2026-08-01",
"published_to": "2026-08-31"
}
}
遵守以下边界:
query 必填;保持简洁、具体。limit 是最终全局返回数,范围为 1–20。filters 包括 published_from、published_to、languages、jurisdictions、legal_status 和 patent。legal_status 仅接受 尚未生效、现行有效、已被修改、失效、待核实。legal_status;非中国法域和其他未支持过滤器会在响应中标明。不要仅因请求中带有过滤器就声称过滤已应用。published_from/published_to 按新闻发布日期过滤,不代表财报报告期、交易日期或事件发生日期。示例日期须按用户问题调整;“最新”结论以实际 published_date 为准,空结果只说明本次检索未找到证据。financial.dataset="nws_news"、document_type="news"。它是新闻文档检索;不能据此宣称已接入完整公告、券商研报、财务指标、基金持仓或债券行情。客户端无需知道 RDS 表名,也不要自行添加 filters.financial、股票代码或指标等未在工具 schema 中定义的参数。search_id 启动研究。正文很长、有 URL 或检索评估为 usable,都不等于已读取并核验原文。按以下顺序检查响应:
failures[],确认是否有来源或阶段失败。result_set.counts_by_stage 中 web、academic、patent、legal、financial 的 recalled/ranked/assembled/selected 计数,定位候选丢失阶段。retrieval_assessment.status 与 retrieval_assessment.gaps[],判断证据是否足够。query.filter_execution,确认每项过滤器实际 applied、unsupported 或 not_applicable 的状态。type: "legal"、passage、legal.law_type、legal.status、legal.department、legal.directory 与 legal.item。引用时保留法规标题和条号。access.is_open 为 false。不要臆造官方链接、发布日期、法规效力或全文定位;原文被截断时遵守 diagnostics 中的限制。type: "financial"、financial.dataset/document_type/vendor_record_id/tool、published_date、citation 和 passage.text;检查 quality.can_support_key_claim 与 diagnostics。PROVIDER_EXTRACT_NOT_ORIGINAL、NO_STABLE_LOCATOR 或 TRUNCATED_EVIDENCE 表明摘录、定位或完整性限制,不能单独证明关键金融主张。缺少公开链接时保留标题、媒体、日期和记录 ID,不臆造 URL;有链接也不代表 access.is_open=true。evidence[].scores.relevance 排序,不将其视为可信度或法律效力判断。status 只表示搜索执行是否完整,不代表证据充分性。research_seed.search_id 指向服务端保存的不可变 evidence 与检索边界快照;不要构造、修改或回传该快照。
researchresearch 是持久化研究任务的统一生命周期工具,支持 start、get、feedback 和 cancel。
从搜索响应取得 research_seed.search_id 后调用:
{
"operation": "start",
"search_id": "srch_...",
"idempotency_key": "agent-run-20260811-001",
"profile": "technology_validation",
"depth": "standard",
"objective": {
"question": "硫化物电解质的关键路线是什么,哪些已形成专利布局?",
"claims": [
{
"text": "硫化物电解质已形成较完整的专利布局",
"importance": "key"
}
],
"required_features": ["离子电导率", "界面稳定性", "制备方法"]
}
}
search_id 和全局 idempotency_key。为同一个逻辑请求的重试复用同一个 key;只有请求实质改变时才换 key。profile:literature_review、technology_validation(默认)、prior_art_landscape、technology_landscape 或 financial_research;选择 depth:quick、standard 或 deep。objective.question,已知待核验陈述写入 objective.claims,必须覆盖的维度写入 objective.required_features。budget;不要用它扩大预设预算。先检索目标公司取得真实 search_id,再启动金融研究,例如:
{
"operation": "start",
"search_id": "srch_...",
"idempotency_key": "financial-research-20260909-001",
"profile": "financial_research",
"depth": "standard",
"objective": {
"question": "查询贵州茅台(600519.SH)的最新成交价,并说明交易日期、交易时间和数据来源。",
"required_features": ["最新成交价", "交易日期与时间", "数据来源"]
}
}
financial_research 是显式研究入口。服务端规划器可选择文档(documents)、股票行情(price)、K 线(kline)、基本面(fundamentals)、公司档案(profile)、公司事件(events)或 unsupported。这些是返回计划中的操作,不是客户端可直接调用的工具;股票代码、时间范围和所需指标写入 objective.question。600519.SH),K 线还需日期区间和日/周/月周期。不要推断已支持基金、债券、宏观、全球股票或任意指标查询。resolved.financial_plan 或最终 dossier.financial_plan 的 intent_status、execution_status、operation、failure_code。只有执行为 ready 且实际返回 data 时,才使用其结构化结果;documents 不执行股票数据查询。financial_plan.data,包括 provider、tool、retrieved_at 和 tables[].columns/rows/units;它们与 evidence_index 中的新闻文档分别引用。数值说明须保留证券主体、交易日或报告期、单位与来源;抓取时间不是行情时间,缺值不是零,不为表格臆造公开 URL。disabled、failed 或 unsupported 时,结合原因说明未取得哪些数据;可以使用仍可用的文档继续研究。clarification_questions 是待澄清信息,不能替用户补造证券代码、日期或口径。读取任务:
{
"operation": "get",
"research_id": "rsch_...",
"detail": "full"
}
state 为 queued 或 running 时,等待响应中的 retry_after_ms 再读取;不要高频轮询。needs_input 时提交 feedback。先读取最新任务,再以当前 task_revision 提交真实的 answers 或 note;不要替用户虚构答案。task_revision。终态包括 completed、partial、needs_input、failed 与 cancelled。state="completed" 只表示流程正常停止。用 dossier.assessment.overall 判断结论充分性,并从 finding 的 evidence ID 解引用 dossier.evidence_index;同时检查 dossier.coverage.gaps 和顶层 stop。legal.status 和 filter_execution。日期陈旧、状态待核实、过滤未执行或证据缺少公开链接时,明确披露限制。retrieval_assessment.status 为 limited,有实质 failures[],或法律/研究证据为 partial、insufficient、conflicted、needs_expert_review 时,不要给出无保留的确定性结论。trust_score,不要臆造来源、法规元数据、引文、申请人、发明人、日期、许可证或 URL。401 invalid_token 或未授权:重新执行 openclaw mcp login chukonu-web-search、codex mcp login chukonu-web-search,或在 Claude Code 中通过 /mcp → chukonu-web-search → Authenticate 重新完成 OAuth;同时检查并移除误配的静态 Authorization 头。search 参数被拒绝:移除未知字段,确认 limit、source_types、日期和 legal_status 的格式。failures[]、query.filter_execution 和日期范围;如改用网页补查,明确标明来源变化和金融数据缺口。FINANCIAL_RESEARCH_PLANNER_DISABLED、WIND_STOCK_DATA_DISABLED 等错误表示结构化能力未启用;不要把文档研究完成解释为行情查询成功,也不要要求用户配置上游凭据或绕过公开 MCP。failures[] 和 retrieval_assessment.gaps[];只有在普通网页证据仍覆盖主张时才以明确限制继续作答。research start 幂等冲突:若逻辑请求未变则恢复原请求并复用原 key;若请求变了才用新 key。research 返回 needs_input:读取 input_request,向用户取得答案后用最新 revision 提交。返回 failed、partial 或 cancelled:读取 failures[]、stop 和 coverage gaps,并说明已完成部分与限制。