mcpField
F
Fmind Freelance AI Architect Website

Fmind Freelance AI Architect Website

远程服务
fmind.dev商业与营销03 天前更新

关于 Fmind Freelance AI Architect Website

Fmind 的服务端渲染作品集网站包含文章,以及 LLM 托管成本和 MCP 上下文成本两个规划计算器,面向评估基础设施预算及 MCP 服务器 Token 开销的访客。

主要功能

  1. 01比较开放权重模型托管与托管 API 成本
  2. 02调整工作负载、硬件、性能和 API 假设
  3. 03估算每次请求及每月的 MCP Token 数
  4. 04查看成本方法、假设条件和注明日期的来源

适用场景

  1. 01估算 LLM 工作负载的托管预算
  2. 02比较托管 API 与 GKE 上的模型托管
  3. 03衡量所选 MCP 服务的上下文开销

MCP 相关

网站提供 MCP 上下文成本计算器,使用 GitHub、Filesystem、Memory 和 Playwright 等所选服务的实测计数。网站还说明了其 MCP 服务发现端点。

配置

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

服务地址https://www.fmind.dev/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 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

10

此工具无需参数。

详细介绍

www

Médéric Hurier (Fmind) 是一名自由职业 AI 架构师,专攻 AI Agent、MLOps 和安全。该网站由 Python 在服务端渲染:Litestar、strict Jinja、Tailwind CSS v4、DaisyUI v5 和 Granian。小型的页面专属 JavaScript 控制器可增强原生导航和表单。网站没有客户端框架、应用数据库或运行时 CDN;Google Analytics 4 仅在明确同意后加载(参见分析与隐私)。

LLM 托管预算工具将 GKE 上选定的开放权重模型与托管 API 进行比较。简单模式从工作负载、可选的每日调用次数、模型(按参数量排序;混合专家模型按活跃参数量排序)、定价方案和每日使用时段开始。团队默认采用 8 小时工作日,并使用始终运行的节点;文档任务和定时工作流则假定节点仅在各自的活动时段内运行。结果首先给出成本决策和取整后的预算;所有部分(包括精确成本、盈亏平衡点、设置假设、方法和来源)都保持展开,不使用折叠控件。紧凑型 4B 模型为 L4 提供了一个起步配置;Mistral Small 4 默认采用其文档所述的 NVFP4 单 G4 配置,并将上下文上限设为 16,384 个 token。高级设置提供自定义 token 预算、硬件、性能和 API 模式。容量检查会分别核算运行时长和活动时段。所有速度假设仅供说明;总额包含计算费用和 GKE 费用,不含运维及其他服务。公式、限制和来源信息请参阅注明日期的来源快照。

MCP 上下文成本计算器展示了实际 MCP 服务为每次模型请求增加的 token 数量。访问者可勾选已测量的服务(GitHub 默认工具集、Filesystem、Memory、Playwright)并输入每日模型请求数;页面会返回每次请求和每 30 天的 token 数、上下文占比,以及托管 API(以托管价格快照为准)每 1,000 次请求和每月的标准输入成本。原生 GET 表单无需 JavaScript,并会忽略 UTM 标签等无关查询键。请参阅方法和来源信息;这些参考计数并非服务提供商账单。

开发

需要 mise、带 Buildx 的 Docker Engine,以及用于首次安装工具和浏览器,以及下载镜像和扫描器的网络连接。Python 和其余工具链版本固定在 mise.toml 和 mise.lock 中;.mise/locks/ 记录浏览器工具的传递 npm 依赖项,更新锁文件时必须一并提交。

mise install
mise run install
mise run watch

打开 http://localhost:8080;如需使用其他端口,请运行 PORT=8081 mise run watch。.env.example 列出了运行时变量;.env 文件不会自动加载。默认环境为 development;生产环境将 ENVIRONMENT=production 设为 production。热重载会监视 src/、content/ 和 static/;环境或配置发生更改后请重启。

src/www/app.py 构建不可变的启动快照并定义路由。src/www/__main__.py 启动 Granian。模板作为 wheel 包数据提供;镜像会将独立的 content/ 和 static/ 目录复制到锁定环境旁。AGENTS.md 说明模块归属和不变量。

内容与设计

src/www/data.py 提供作品集事实、服务可用性、HTML、JSON/JSON-LD、vCard 和 LLM 文本。请在这些页面中保留所有者的表达风格和事实陈述。

本网站实现了 fmind/theme 中的纯浅色 Fmind DESIGN.md:白色、浅灰色、炭灰色和蓝色 #174EA6,字体采用 Google Sans。assets/css/input.css 管理界面颜色;src/www/highlighting.py 管理语法高亮颜色。测试会强制执行配色方案,但明确列出的公司品牌颜色除外。Tailwind 会扫描 src/www/templates/**/*.html。

字体为自托管的 Google Sans 和 Google Sans Code 子集。字体生成器会固定上游版本、移除保留的徽标连字,并保留时间戳。公开品牌原图为 /logo.png 和 /banner.png。请将私人肖像原图保存在 static/ 之外;build:portrait 会导出 /portrait.jpg(最长边 2048px),保留方向和 ICC 信息,并移除个人元数据。

参加活动时请分享 /connect;其中提供 LinkedIn、vCard 和完整网站的入口。/scan 是一个 noindex 二维码工具。两张联系卡都不显示 RSS 控件,并保留访问 Cookie 设置的入口;较短的屏幕会使用较小的肖像,以便二维码显示仍能完整呈现。UTF-8 vCard 3.0 根据作品集数据生成公开职业信息和经过清理的肖像,不含电话号码、街道地址、生日或精确坐标。

content/articles/ 中的文章使用严格的 TOML 前置元数据。经过验证的文章集合会提供给所有发布页面,生产环境中不包含草稿。build:images 会生成响应式 WebP 衍生图和 SHA-256 来源锁定文件;check:images 不会写入任何内容。图片适配 1280px 栏宽;第一张图片会立即加载,并采用浏览器选定的优先级,其余图片则延迟加载。文章图片不会预加载,因为引言可能会将图片推到首屏以下。代码高亮在服务端完成;只有包含代码的文章才会预加载代码字体。请遵循文章技能。

决策工具使用带类型的 Python 公式、原生 GET 表单、标注日期的来源和明确的规划限制。请在 data.py:SITE_PAGES 中注册这些工具,并遵循网站技能。

任务

mise.toml 是钩子和 CI 使用的标准约定;mise tasks 会列出所有任务和别名。

命令用途
mise run all格式化、检查、构建、pytest、OCI 构建/扫描/冒烟测试、安装 Chromium、浏览器流程
mise run check元数据/锁文件、Ruff、ty、dprint、密钥、依赖项、Docker/IaC/工作流扫描、镜像来源、拼写错误
mise run test离线 pytest,分支覆盖率 ≥85%,并将警告视为错误
mise run check:tofu无后端的提供程序验证、tflint 和模拟基础设施计划测试
mise run check:links依赖网络的外部链接审计;单独定期运行,不纳入合并门禁
mise run test:browser桌面版/移动版 Chromium 流程
mise run test:browser:cross针对 Firefox/WebKit 的重点流程
mise run test:lighthouse:local临时本地服务和严格的 14 项审计作品集/计算器矩阵
mise run build生产 CSS、wheel 和源码分发包
mise run check:image构建并扫描 tmp/www-image.tar
mise run test:image [digest-ref]对现有归档或指定的远程摘要进行冒烟测试
mise run check:image:deployed解析并扫描所有接收 Cloud Run 流量的镜像
mise run build:branding / build:fonts / build:images按需重新生成经审核的资源
mise run build:portrait <private-master.jpg>导出经过清理的公开肖像
mise run test:candidate / test:deployedCI 发布检查:检查已标记的候选版本和已提升的流量;需要 IMAGE_REF、GITHUB_SHA 和 gcloud
mise run deploy <digest-ref> <commit-sha>手动部署/回滚镜像,并设置提交标签和完整流量;会修改生产环境

all 按顺序运行,并复用构建产物及其镜像归档。它需要 Docker/Buildx,但不需要云凭据。资源生成器、clean、监视器、实时扫描和部署仅按需运行;clean 会删除生成的输出。

Lighthouse 单独运行:安装 Chromium,然后使用 mise run test:lighthouse -- --base-url <origin> --mode portfolio 对作品集、联系页面、隐私页面、归档索引和两个计算器执行 14 项桌面版/移动版审计。smoke 运行四项审计;默认的 full 覆盖站点地图和 48 项压力审计。运行性能审计时,不要同时进行构建或字体生成;保留每个页面的精确评分。 跨浏览器检查需要 install:browser:cross 和 Playwright 系统库,或通过 PW_TEST_CONNECT_WS_ENDPOINT 使用匹配的官方浏览器容器。每周/手动质量工作流会配置临时运行器,并将证据保留 14 天。请按顺序运行浏览器测试套件,因为它们共用本地端口 8096。设置 BROWSER_BASE_URL=https://www.fmind.dev 可运行生产环境流程;否则,本地服务会自动启动和停止。

验证已部署的提交后,使用 gh workflow run quality.yml -f target=production 触发该工作流,即可在干净的运行器上针对公开站点运行 Chromium、Firefox、WebKit 和相同的严格 Lighthouse 测试矩阵。默认的 local 目标用于验证当前检出版本;生产模式不会部署或更改服务。当其他工作站负载影响性能测量时,请使用运行器证据,并保留失败报告和分数阈值。

部署

Cloud Run 在项目 www-fmind-dev、区域 europe-west1 中提供 https://www.fmind.dev/。infra/ 管理服务设置、注册表、无密钥身份、告警和分析。请将服务级和修订版本级的最小实例数均设为 0,最大实例数设为 5,并使用基于请求的 CPU。经验证的运行时配置为 1 个 CPU、512 MiB、并发数 32、请求超时 30 秒,以及间隔 5 秒的 12 次启动尝试。启动时会为 HTTP、大模型文本和 MCP 一次性构建文章 Markdown。最大实例数限制扩缩容;它不是硬性费用上限。未分配流量的带标签修订版本仍各自受 5 个实例的上限约束,但不计入服务最大实例数。

推送 main 分支会运行完整检查门禁,构建带 SBOM/来源证明的非 root 镜像,推送镜像,并对其不可变摘要进行扫描和冒烟测试。随后会创建一个不接收流量、带有 candidate 标签的修订版本;test:candidate 要求该修订版本与 IMAGE_REF/GITHUB_SHA 匹配,并在其带标签的 run.app URL 上提供健康检查、配置文件和 MCP 服务卡。只有通过这些检查后,CI 才会将 100% 的流量路由到该确切修订版本;候选版本失败时,流量仍留在之前的修订版本上。最后,test:deployed 会验证接收 100% 流量的就绪修订版本与 IMAGE_REF 和 GITHUB_SHA 匹配、保留缩容至零检查,并探测公开的健康检查、配置文件和 MCP 发现端点。CI 不会自动回滚:如果这项推广后检查失败,流量会继续留在新修订版本上,直到所有者通过下方的手动发布流程重新部署之前通过验证的摘要。由于部署者没有读取日志的权限,错误日志审查仍是独立的发布检查。Actions 均固定到 SHA,Dependabot 负责维护生态系统更新。

工作负载身份联合会将每个 CI 身份绑定到 main 上的一个工作流文件(参见 SECURITY.md)。OpenTofu 会忽略镜像,并保留由 CI 管理的流量;CI 不会应用基础设施配置。由于流量固定到已验证的修订版本,已应用的服务模板更改只有在下一次部署推广后才会生效。

基础设施更改需要经审核的已保存计划,并由所有者通过 infra skill 授权应用。远程状态位于 gs://www-fmind-dev-tfstate/infra/state;其引导存储桶由单独流程管理,并且必须启用版本控制和强制实施公开访问防护。部署应用前,请先协调服务更改。现有的 Cloud Run 域名映射仍是 Google 不建议用于生产环境的预览功能;迁移到其推荐的负载均衡器需要单独评估成本、DNS 和发布计划。 对于手动发布/回滚,mise run deploy europe-west1-docker.pkg.dev/www-fmind-dev/app/www-fmind-dev@sha256:<64-lowercase-hex> <40-lowercase-hex-commit> 接受一个限定完整的仓库摘要及其构建所依据的提交。它会在 manual-candidate 下创建一个唯一命名的不接收流量的修订版本,验证其摘要、提交、容量策略以及带标签的健康状态/发现情况,然后将流量路由到该确切修订版本。候选版本失败或被替换,不会影响当前服务流量。标签、外部仓库、过短或大写的 SHA,以及额外标志都会在调用 gcloud 前导致失败。对于新摘要,先运行 check:image:digest <digest-ref> 和 test:image <digest-ref>。然后运行 IMAGE_REF=<digest-ref> GITHUB_SHA=<commit-sha> mise run test:deployed,并检查浏览器端流程和错误日志。保留前一个限定完整的摘要以便回滚。Semver 发布遵循 release skill。

SECURITY.md 负责漏洞报告和剩余公告审查。部署会阻止可修复的 HIGH/CRITICAL 漏洞和机密信息;计划扫描会保留尚未修复的问题,并使用单独的只读身份,该身份只能由 main 上的 security.yml 承担。GitHub 依赖项警报、安全更新、机密扫描和推送保护均已启用;main 禁止删除和强制推送。

分析与隐私

/privacy 介绍了两种数据流。Google Analytics 4(G-Z28QKD99V2,属性 538730900)仅在访客接受同意横幅后才会在 www.fmind.dev 上加载;每个页面的页脚都提供 Cookie 设置,拒绝后会删除 _ga Cookie,再次接受会恢复分析同意,且不会重复加载脚本。CSP 仅允许 Google 的 GA4 脚本、信标和像素主机。浏览器测试会拦截 Google 请求,同时针对候选页面测试这些选择。大脑的 google-analytics 传感器每天收集该属性的数据。HTML GET 响应会记录聚合路径/状态、引荐来源主机名、经过验证的 UTM 令牌以及启发式判断的机器人标记。重定向会被排除;地理位置数据保持为空。BigQuery 分区会在 180 天后过期,不会重复保留 Cloud Logging 数据。分析数据不包含 IP、原始用户代理、完整引荐来源、Cookie、会话和跟踪标识符。单独的私有 Cloud Run 运营日志可能包含 IP、用户代理和完整 URL,并会在 30 天后过期。

使用 website-analytics skill 或 uv run --locked python -m scripts.website_analytics 生成范围受限且免费的报告。数据不完整或发生变化时,报告会失败;报告不用于衡量独立访客或转化情况。请勿将生产报告提交到 Git。

跟踪默认关闭,可通过标准的 OTEL_EXPORTER_OTLP_* 变量选择启用。运营日志会关联跟踪/跨度 ID;分析数据不包含这些 ID。

使用 finops-analytics 进行云成本、预算和优化审查。OpenTofu 管理计费 API 和私有 EU 数据集 billing_export。在 Cloud Console → Billing → Billing export 中启用 Standard usage cost,选择项目 www-fmind-dev 和此数据集;其他导出类型保持禁用。账户级导出需要按项目筛选的按需查询,并使用试运行和 100 MiB 扫描上限。在确认成本数据可用前,请先验证是否已启用以及表是否已到达;初始回填可能需要五天。

Agent 访问

公开的 /agents 指南是集成参考。将 MCP 客户端连接到 https://www.fmind.dev/mcp,即可使用无需身份验证、只读的作品集、出版物、搜索、服务、托管比较和 MCP 上下文成本工具。compare_mcp_context_cost 接受类型化的 servers(省略时表示全部)和 requests_per_day 参数,并返回 token 数量、上下文占比、各模型的输入成本、注明日期的来源以及可分享的方案;无效值会导致失败。浏览器请求受同源保护;请求正文长度有限。MCP 对 POST 请求使用有限的 JSON 响应。GET/HEAD 会返回 405,并带有 Allow: POST;此服务不提供通知流或订阅。工具不会配置服务、运行 LLM、预订服务或发送消息。

/api/profile 及其 JSON Schema 与 LLM 文本、信息源、站点地图和 JSON-LD 共用启动快照。主页和文章路由支持 Accept: text/markdown 和 Vary: Accept;优先返回 HTML。固定的文章 .md URL 仍可访问。不接受 text/markdown 的阅读器可以通过常规文章 URL 阅读由服务器渲染的 HTML,无需 JavaScript。建议先搜索,再逐篇阅读文章;/llms-full.txt 是批量导出文件,供需要且能够处理整个内容集的阅读器使用。API 目录、MCP 服务卡片和打包的访客技能提供发现入口;使用 server/discover 进行协议协商。访客技能与仓库维护技能彼此独立。

在 src/www/data.py 中维护身份信息、卢森堡工作地点和服务可用性。主页、profile JSON/MCP 和 LLM 摘要共用这些事实。文章 HTML 和 Markdown 会标明作者;/llms-full.txt 会保留每篇文章的日期和规范链接。使用本地 Lighthouse 任务验证搜索展示效果;部署后仍需通过单独的 Search Console 证据确认索引和排名。

server.json 跟踪 io.github.fmind/portfolio 的网站版本。MCP Registry 发布是经在线验证后的单独所有者操作:依次运行 mcp-publisher validate server.json、mcp-publisher login github,然后运行 mcp-publisher publish。通过 Registry API 验证最新条目。被发现并不保证客户端会采用,也不保证 AI 会引用。

评论

支持 Markdown

第一次接触 MCP?

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

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