mcpField
O
Otis

Otis

远程服务
otisbase.com金融数据13 天前更新

关于 Otis

Otis 是面向顾问和小型机构的 MCP 服务,可通过 AI 助手管理客户账单。它记录业务与客户资料、工时、费用、发票和付款,并按规则编号发票且不修改已开具发票。

主要功能

  1. 01业务与客户资料管理
  2. 02记录计费工时、服务、费用和 AI 使用量
  3. 03管理发票草稿与已开具发票
  4. 04跟踪全额及部分付款
  5. 05导出业务记录
  6. 06按规则计算总额并编号发票

适用场景

  1. 01记录顾问工作与费用
  2. 02准备发票并提交审批
  3. 03跟踪客户付款及其参考信息
  4. 04导出业务账单记录

MCP 相关

Otis 通过托管远程端点或自托管部署向 MCP 客户端提供账单工具。用户通过 OAuth 邮件验证码登录。

配置

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

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

工具

详细介绍

Otis MCP

Otisbase 的源代码,这是一个免费的 MCP 服务,用于客户计费,专为顾问和小型代理机构打造。

Otis 没有应用或仪表板。你的 AI 助手就是操作界面:它会在 Otis 中记录客户、工作、费用和付款,并开具你批准的发票。Otis 存储记录并执行规则。它会为发票编号、计算总额、要求你确认准确的总额后才开具发票,并且绝不会重写已开具的发票。Otis 不运行任何 AI 模型;所有结果都来自此代码库中的记录和规则。

此代码库包含运行在 mcp.otisbase.com 上的完整服务:MCP 服务、电子邮件登录和存储层。它运行在 Cloudflare Workers 上。otisbase.com 网站由另一个项目维护。

使用托管服务

在你的助手中将此 URL 添加为远程 MCP 服务:

https://mcp.otisbase.com/mcp

登录使用带电子邮件验证码的 OAuth,因此无需 API 密钥。安装指南介绍了如何在 Claude、ChatGPT、Claude Code、Codex、Cursor、Muse、Grok Bot 和 Mistral Vibe 中安装。托管服务免费。记录存储在欧盟。

  • MCP 文档:端点、规则和所有工具。
  • Otis Plugins:适用于 Claude 和 Codex 的插件,包含一个菜单和九种工作流技能。
  • 技能:每项技能的功能说明。

Otis 记录的内容

区域记录
企业企业详情、税务设置和发票编号,由企业所有者使用
客户客户及其账单详情
工作可计费时间、服务、报告的 AI 使用情况和费用
发票草稿、内容不可变的已开具发票、折扣和税费
付款全额和部分付款,以及用于防止重复的参考信息
导出企业记录的完整导出

工作原理

部分实现方式
运行时一个 Cloudflare Worker(src/index.ts)
MCP 服务/mcp 上基于 Streamable HTTP 的 @modelcontextprotocol/server(src/mcp.ts)
登录使用电子邮件验证码的 @cloudflare/workers-oauth-provider(src/auth.ts)
企业记录每家企业对应一个 Durable Object,其中使用 SQLite(src/business-store.ts)
账户和登录Durable Objects(src/account-store.ts、src/sign-in-store.ts)
OAuth 状态Workers KV
电子邮件Cloudflare Email Sending,用于发送登录验证码和安全通知
数据位置欧盟管辖区内的 Durable Objects(src/regions.ts)
登录页面使用自有精简样式表的服务端渲染 HTML(src/html.ts、src/shell.ts)

每项企业操作都会检查调用者当前的成员资格。金额以最小货币单位的整数表示。写入操作会接收请求 ID,因此重试调用不会重复记录同一事项。

代码库结构

路径内容
src/Worker、MCP 工具、登录、存储、账单规则和公开文档
test/在 Cloudflare 本地运行时中执行的集成测试
scripts/实时端点检查、登录检查和插件生成器
spec/产品规格:范围、账单规则、服务和设计

修改行为前请先阅读规格。请从 spec/01-README.md 开始。规格优先于决策日志。

开发

你需要 Node 24 或更高版本。

npm ci
npm run check
npm test

测试在 Cloudflare 本地运行时中执行。测试会模拟电子邮件投递。

要在本地运行 Worker:

npm run dev -- --local --ip 127.0.0.1 --port 8788

然后打开 http://127.0.0.1:8788/health。本地运行时仅使用本地存储。

npm run plugins:build 会根据 src/workflows.ts 生成 Claude 和 Codex 插件,并将其放入 plugins/。这些插件发布在 otisbase/otis-plugins。

自托管

你可以在 Cloudflare 账户上运行自己的副本。部署前请编辑 wrangler.jsonc:

  1. 将 account_id 设置为你的 Cloudflare 账户。
  2. 为 OAuth 状态创建一个 KV 命名空间,并将其 ID 填入 kv_namespaces。如需使用欧盟存储,请在欧盟区域创建。
  3. 将两个 routes 替换为你自己的域名。
  4. 设置 vars:
    • ORIGIN:MCP 主机的 URL。
    • SITE_ORIGIN:你的网站 URL。在 MCP 主机上打开的网站页面会重定向到该地址,登录页面也会链接到该网站的服务条款和隐私政策。
    • EMAIL_FROM:登录验证码的发件人。该域名必须配置为可使用 Cloudflare Email Sending。
    • FEEDBACK_TO:接收通过 feedback_send 工具发送的反馈的地址。
    • DO_JURISDICTION:设为 eu 可将 Durable Objects 保留在欧盟。删除此项则由 Cloudflare 选择。
    • SIGN_IN_ENABLED:设为 true 以允许登录。
  5. 将 ratelimits.namespace_id 设置为账户中唯一的 ID。

然后部署:

npx wrangler login
npm run deploy

登录页面和邮件中会显示 Otisbase。向其他人提供你的副本前,请在 src/html.ts、src/auth.ts 和 src/notify.ts 中修改相关内容,并发布你自己的服务条款和隐私政策。

参与贡献

欢迎提交错误报告、修复和想法。请参阅 CONTRIBUTING.md。如需报告安全问题,请参阅 SECURITY.md。你也可以通过助手发送反馈:让它向 Otis 发送反馈。

许可证

代码依据 MIT License 发布。

以下内容不受 MIT License 涵盖:

  • Otisbase 和 Otis 名称及徽标。
  • src/fonts/ 中的 Geist 字体,依据 SIL Open Font License 授权。

src/html.ts 中的复制图标和勾选图标来自 Phosphor Icons(MIT)。

评论

支持 Markdown

第一次接触 MCP?

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

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