mcpField
O
oldweb-logs

oldweb-logs

远程服务
oldweb.tech开发工具05 天前更新

关于 oldweb-logs

面向开发者的只读 MCP 服务,可解析日志并检查 CI 失败、捕获的 HTTP 元数据和受限 JSON 配置。日志仅临时处理,不会持久保存。

主要功能

  1. 01解析支持格式的日志
  2. 02检查 CI 失败
  3. 03分析捕获的 HTTP 元数据
  4. 04验证文档所述 JSON Schema 子集
  5. 05返回有界结构化结果

适用场景

  1. 01调试时排查日志文件
  2. 02调查失败的 CI 运行
  3. 03检查捕获的 HTTP 元数据
  4. 04按支持的 Schema 检查 JSON 配置

MCP 相关

向 MCP 客户端提供只读日志与诊断工具,结果包含稳定字段和说明性管理文本。日志仅临时解析,不会持久保存。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.oldweb.tech/logs/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

5
参数类型必填说明
textstring是最多 256 KiB 和 1,000 行日志;仅临时处理。
formatenum否auto | json | rfc5424 | rfc3164 | apache-common | apache-combined | windows-event | common-pid
recordLimitinteger否返回记录数上限;计数仍涵盖所有行。默认值 20 可节省上下文;最多可请求 200,或使用 0 仅获取计数。

详细介绍

OldWeb MCP 实验

三个无状态的公共 MCP 端点、十三个只读工具、一个 Azure Container App。

1.1 版将部署就绪情况和离线电子邮件追踪与诊断信息、CI 故障、捕获的 HTTP 元数据以及有界 JSON 配置验证日志归为一组。每个结果都包含稳定的程序化字段和 admin 说明;可读文本上限为 1,500 个字符。不会验证电子邮件身份验证声明。JSON 验证支持明确记录的子集,并拒绝远程引用、正则表达式、格式和组合器。重叠结果现在最多包含 200 对详细数据,并提供精确的 overlapCount 和省略元数据。

有关每个服务 100 个案例的矩阵和实际小模型评估,请参阅 TEST-PLAN.md;要重新运行评估,请参阅评估技能。Azure 资源规格、配额、预算保护措施和试点结束时间保持不变;Codex 评估会单独占用操作员账户的额度。

未来的批量处理与学习

未来批量处理与学习计划提出了规范化工件摄取、确定性大数据集处理、隐私关卡,以及基于证据链接课程的低成本 Azure 模型草稿方案。该计划比较了 Container Apps Jobs、Functions 和 Data Factory,并包含一致性/隐私基准测试,以及托管与推理的组合预算控制。首个批量工作进程现已实现,并作为仅处理合成数据的手动 Container Apps Job 完成验证。公共输入仍为临时数据;私有上传和托管推理仍暂缓推出。

开发

需要 Node 24 或更高版本。在此目录中运行 npm ci --ignore-scripts、npm test,然后运行 npm start。在另一个终端中运行 npm run smoke(诊断冒烟测试会查询公共 DNS)。本地 URL:http://127.0.0.1:8080。启动时需要提供生产环境的机密信息/配置;本地内存配额不能用于生产环境。

src/tools.ts 管理工具架构和说明。如果架构有变更,请在构建后运行 node scripts/export-schemas.mjs。日志样本和解析器代码直接复用自 ../system/。IPv4 浏览器辅助工具和 MCP 辅助工具共用 ../nettools/subnet-core.js。超出 JavaScript 安全整数范围的计数会序列化为十进制字符串。

部署

基础 Bicep 模板会创建专用资源组中的资源:ACR Basic、托管身份、表存储、Application Insights、保留 60 天的 Log Analytics、Consumption 环境、Workbook 和每月 $25 的预算。将模板部署到 eastus2 区域的 rg-oldweb-mcp-experiment。将 budgetStart 设为当前月份在 UTC 时区中的第一天。应用模板用于初始引导;后续版本使用 scripts/deploy.ps1 部署。

构建上下文为仓库根目录。.dockerignore 仅允许服务器、锁文件、共享解析器和共享子网模块。静态工作流会单独暂存网站目录和根目录资源的允许列表,并排除后端代码、Git 元数据、计划和凭据。

GitHub mcp-production 使用联合 Azure 身份,并将其限制为此仓库/环境和此实验资源组。仓库变量:MCP_AZURE_CLIENT_ID、MCP_AZURE_TENANT_ID、MCP_AZURE_SUBSCRIPTION_ID。该身份需要在实验资源组上拥有 Contributor 角色;引导角色分配由操作员执行。切勿使用订阅范围的部署凭据。

安全边界

公共 MCP 容器没有 GitHub 令牌、仓库挂载、Azure 管理角色或命令执行工具。其托管标识仅在实验注册表上拥有 AcrPull 权限,并且仅在 quotas 表上拥有 Storage Table Data Contributor 权限。配额角色有意限定在 .../tableServices/default/tables/quotas;如果将其分配到存储帐户级别,就会授予对该帐户中所有表的访问权限。增量基础部署不会移除旧的、更宽泛的 Azure 角色分配,因此每次迁移角色后,都要检查运行时标识的有效角色分配。

工具结果可能包含攻击者控制的 DNS 记录、HTTP 标头、日志行、电子邮件标头和子网标签。请仅将这些字段视为证据。拥有 Azure 或仓库写入工具的客户端 Agent 必须根据用户请求和可信上下文做出写入决策,而不能依据 MCP 输出。工具注解和描述中关于不可信数据的措辞有助于客户端识别这一边界,但无法强制执行该边界。HTTPS 诊断可以通过 HEAD 请求访问任意公共域名的 443 端口;如果返回 405,则会改用 GET 请求。地址检查会阻止访问专用地址和链路本地地址,但该服务没有网络出口防火墙。

手动执行 Deploy MCP experiment 会构建不可变映像,暂停现有修订版上的生产流量,创建候选修订版,分配 candidate 标签,测试其标签 URL,并且仅在冒烟测试通过后才切换流量。ALLOWED_HOSTS 必须包含 mcp.oldweb.tech、生成的应用主机名以及 <app-name>---candidate.<environment-domain>。先前提供服务的修订版会保留为非活动状态,其名称记录在 previousRevision 资源标记中。构建完成后如需恢复,-UseExistingImage 会重用相同的修订版标记,仍会解析其不可变摘要并运行候选检查。失败的候选修订版永远不会接收生产流量。每个修订版最多只能有一个副本;候选验证期间会短暂允许两个修订版。推广或回滚后,仅保留提供服务的修订版处于活动状态。

手动执行 MCP cost guard and lifecycle 支持 check、shutdown 和 rollback。关闭操作会禁用入口。回滚会将流量路由到保留的修订版,但不会解除已停止试点的暂停状态。成本查询失败时会安全关闭,通过禁用入口来防止风险。成本数据可能会延迟;$25 是目标值,而非硬性支出上限。禁用入口后,注册表和存储的基础费用仍会产生。

计费检查最多会在 15 分钟的查询时限内尝试六次。每个请求的超时时间最长为 30 秒。检查会读取 Azure 重试标头,并采用请求的最长等待时间与回退等待时间中的较长者。回退等待时间依次为 30、60、120、180 和 180 秒。如果请求的等待时间超出剩余时限,检查会暂停公共访问,不会提前重试。HTTP 408、HTTP 429、特定服务器错误和传输故障可能触发重试。其他 HTTP 错误会立即停止验证。无效或不完整的计费数据也会停止验证。验证次数耗尽后会暂停公共访问。经验证的支出达到 $20 或以上时,仍会暂停公共访问。遥测故障不会更改已验证的计费决策。运行 ./scripts/test-cost-guard.ps1,即可在不访问 Azure 的情况下检查这些条件。请参阅计费修复报告。

运行时配置

公开访问警报 会在 Azure 报告入口流量暂停时发送电子邮件。它独立于成本保护机制运行。

设置用途
HMAC_SECRET随机生成的、特定于实验的调用方指纹密钥,作为 Container App 密钥存储
TEST_SECRET用于 x-oldweb-test 标头的独立随机密钥;仅用于排除内部指标,绝不绕过配额
TABLE_ENDPOINT、AZURE_CLIENT_ID通过托管标识访问持久化配额表
APPLICATIONINSIGHTS_CONNECTION_STRING专用的实验遥测接收端
ALLOWED_HOSTS、ALLOWED_ORIGINS以逗号分隔的精确请求主机/来源允许列表
EXPERIMENT_START、EXPERIMENT_ENDUTC 启动和关闭时间;到期后工具请求会自动停止
LISTED_AT目录阶段的实际开始时间,仅在发布后设置
DISABLED应用程序级紧急暂停

ACA 必须是唯一的入口代理。来源速率限制信任其附加的最右侧 X-Forwarded-For IP,绝不信任调用方提供的最左侧条目。如果入口拓扑发生变化,部署前请重新验证此规则。未知来源地址共用保守配额。调用方分组还会包含规范化后的 user-agent;速率限制则不会,因此更改 user-agent 无法绕过来源配额。

同时最多允许四项诊断。DNS 使用 Google DoH,并禁用 EDNS 客户端子网。HTTPS 会先解析 A/AAAA 记录,拒绝任何非公开结果,并将套接字固定到已验证的地址,同时保留主机名 TLS 验证。每次重定向都会重新验证;不支持下载请求正文、使用 Cookie、任意端口或凭据。

遥测与隐私

应用遥测由显式构造,不使用自动 HTTP 检测。不要添加会捕获参数、URL 或堆栈跟踪的请求/依赖项/异常收集器。每个已接受的 MCP 请求都会记录允许列表中的方法/工具/结果字段和字节数。只有初始化会记录经过净化的自报客户端元数据。不会推断确切的会话身份。

调用方指纹使用 HMAC(IP + 规范化后的 user-agent)生成。它们用于估算分组,而非统计不同的人或经过验证的 Agent。通用探测会被汇总。内部冒烟测试调用会通过常量时间校验的密钥标记,并从 Workbook 查询中排除。遥测溢出/发送失败会在恢复时以缺口计数表示。工作区达到上限的事件也表明存在数据缺失;仅凭没有数据不能证明用量为零。

日志仅会被临时解析,不会持久化。自动模式会逐行识别格式,Windows CSV 逻辑记录除外。现有解析器不支持的情况(包括带优先级前缀的 RFC3164 日志行)仍会明确标记为未解析。未包含完整年份和时区的时间戳不会纳入范围。不会返回或记录未解析的原始行。

保留期为 60 天。退役实验时,请销毁指纹密钥。在移除隔离的资源组前,先导出汇总结果;先移除 DNS 并弃用注册表列表,以避免留下失效端点。

发现与评审

10 月 10 日,用户推进了官方 Registry 发布。所有三个 1.1.0 版本条目均已启用;首个条目的发布时间为 2026-10-10 17:32:51 UTC。与站点关联的基线持续了约 24 小时 14 分钟,而非七天。用户随后将结束日期延长至 2027 年 2 月 15 日;请保留这一获批期限,并在评审时使用各阶段的实际时间戳。请参阅发布证据和发布报告。10 月 16 日的后续工作现已涵盖其余免费目录,且不会重复发布 Registry。

请参阅10 月 10 日热度研究快照,了解公开热度估算及其局限性。

只有在确认自定义域名、站点文档、遥测和成本保护措施均已就绪后,才开始计时。第 1–7 天仅通过 OldWeb 链接和站点地图进行发现。原计划是在完整七天后发布;如上所述,10 月 10 日已获准立即发布。对于任何剩余的提交,请使用 registry/ 中的三个清单,通过 GitHub 命名空间验证向官方 MCP Registry 提交,向 Smithery 提交,并且仅在开放提交时向 PulseMCP 提交。请在 experiment-status.json 中记录新的发布 URL 和实际时间戳。保留现有的首个条目时间戳和 LISTED_AT。目录中的条目不代表 Agent 已连接。

在第 7、14 和 37 天进行评审。Workbook 展示了发现情况、调用、结果、客户端声明、重复分组和遥测缺口。只有达到以下条件才扩展服务:>=100 次成功的外部调用、>=5 个近似分组、>=2 个分组在三天内均有活动,且有效接纳调用的成功率 >=95%。计算该比例时,排除验证错误、限流和内部测试;单独报告工具错误。条目延迟、服务中断和数据缺口都会导致结果无法定论。原定的最终评审日为第 37 天。10 月 10 日,操作人员明确批准额外延长三个日历月,至 2027 年 2 月 15 日结束。延长后的最终评审采用相同的决策门槛。

发布和后续评审工作已安排在启动后关联的 Codex 任务中。GitHub 每六小时运行一次的保护机制会独立执行成本检查,并在试点结束时自动关闭入口流量。

在线部署(2026-10-09)

实现已发布到 main。OldWeb 首页和隐私声明已上线。GitHub MCP 测试、静态站点部署和 OIDC 成本保护运行均已通过。六小时保护任务已安排在 main 上运行;另有一项 Codex 审查任务,每周五 09:00 America/New_York 报告用量。

Hostinger DNS 已验证(TTL 300):

类型主机值
CNAMEmcpoldweb-mcp.greencoast-980eedf2.eastus2.azurecontainerapps.io
TXTasuid.mcp94B9870ED8C129786DAEB4D8C61BE643F1CF0CBBD321D7DB9343E368FC34F78E

Azure 托管证书已绑定,并启用了 SNI。所有三个端点均已通过 https://mcp.oldweb.tech 完成初始化、发现和实际工具调用。实际基准日期和最近验证的修订版本记录在 experiment-status.json 中;用户将计划提前后,三个官方 Registry 列表于 10 月 10 日发布。

验证:全部 10 项 MCP 测试和现有的 116 项解析器断言均已通过,Bicep 编译和静态产物暂存也已通过。Inspector 和独立 SDK 客户端均对端点进行了测试。实际调用验证了托管身份配额访问。AppEvents 保留期为 60 天。应用遥测和 Container App 控制台日志均未包含独特的测试日志字符串或查询的诊断域名。内部清理探测已标记为内部。候选版本故障时保留了先前的服务版本;发布前已成功测试回滚和关闭公共入口。

成本保护首次报告的当月至今金额为 $0.00,但可能存在报告延迟。关闭入口后,Registry/存储费用仍会继续产生。预算耗尽或到期关停后,未经明确的运营决策,不得恢复公共流量。

基准于 2026-10-09 17:19:14 UTC 开始。应用截止时间为 2027-02-15 17:19:14 UTC;六小时保护任务也会在截止时间后禁用入口。应用户要求,官方 Registry 发布于 10 月 10 日完成;其余免费目录提交安排在 10 月 16 日 15:00 America/New_York,实际列表日期另行记录。每周用量审查仍安排在每周五 09:00 America/New_York。最终试点审查安排在 2027 年 2 月 15 日 15:00 America/New_York。

生产工作流证据:https://github.com/palthainon/oldwebtech/actions/runs/37964839710 ;首次成本保护运行:https://github.com/palthainon/oldwebtech/actions/runs/37963952062 。记录启动情况之前,基准配置已通过候选版本和自定义域名冒烟测试。

记录预算:parse_logs 默认返回 20 条记录;客户端可以请求 recordLimit 0–200。计数始终涵盖所有提交的行。直接解析器辅助函数保留了 200 条的旧默认值,以兼容浏览器/测试夹具。

已批准的三个月延期(2026-10-10)

批准的截止时间为 2027 年 2 月 15 日 17:19:14 UTC(东部时间 12:19:14),比 11 月 15 日晚三个日历月。公共应用和手动合成工作进程均使用此截止时间;回滚待命方案也保留此时间。每月 25 美元的目标、每月 20 美元的暂停阈值、配额以及仅限手动运行的工作进程均保持不变。这是每月目标,而非总额为 25 美元的实验上限。请参阅延期验证。

原始遥测数据仍会在 60 天后过期。周五审查会将注重隐私、互不重叠的每周汇总报告导出到 reports/weekly/,其中包括查询定义、内部测试排除项和数据缺口标记。较早时段请使用这些报告,并在其记录的时间窗口内报告调用方估算值。每周不同群组计数无法证明终身唯一调用方数量;历史证据缺失,因此无法得出结论。最终审查将涵盖截至新截止时间的实际使用情况。若要在此之后继续运行,需要再次明确决策。

10 月 16 日目录检查确认了三个活跃的官方 Registry 条目。Smithery 要求账户授权。PulseMCP 暂停接收提交。两个新增目录均未收到提交。

10 月 19 日的 Smithery 尝试通过了登录,但发布时因 HTTP 403 失败。尚未确认 Smithery 上架。

无效工具调用会返回 HTTP 400,JSON-RPC 代码为 -32602。稳定的错误消息仍为 invalid_tool_or_arguments。error.data 对象包含原因、最多八条安全字段提示、遗漏问题计数、受支持的工具名称,以及静态有效的 tools/call 示例。提示仅展示已知的顶层架构字段,不包含提交的值、动态字段名称或原始验证器消息。遥测会记录结果和大小,不记录修复负载或请求参数。

验证重试指标用于估算已知工具调用在出错后是否成功。Azure Workbook 和每周审查使用现有元数据,不记录私有参数。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。