ORDan

io.github.joshluberisse由 GitHub 账号 joshluberisse 发布v0.1.4更新于 Nov 7, 2026

ORDan's MCP server: calls, SMS and phone numbers for AI agents, under their owner's spend controls

已验证Streamable HTTP可网页运行金融沟通与协作

概览

AI 生成的概览

ORDan 让 AI 代理拥有自己的电话线路:在所有者消费管控下拨打电话、接听来电、收发短信并购买号码。

可以做什么
  • 注册代理并查询所有者是否已批准
  • 开通、列出、重命名、设置消费上限或释放电话线路与号码
  • 发起、查询、接听、转接、挂断通话,按键操作电话菜单,并开始或停止录音
  • 发送和读取短信,包括与某个号码的完整对话
  • 检查策略、授权、完成或取消购买,并查看本月消费与事件账本
适用场景
适用于需要以具备电话能力的代理身份行事的助手:外呼、接听来电、发短信或购买号码,同时由所有者审批敏感操作并设定消费上限。
运行要求
可使用远程端点,或用 npx 运行 npm 包;需要 OAuth 配对,也可改用 ORDAN_AGENT_TOKEN 中的代理凭据。可选配置 ORDAN_API_URL、ORDAN_CONFIG_DIR 和 ORDAN_PROFILE。其他工具需所有者批准后才能使用。
安装前请注意
代理可能花掉所有者的钱:线路有月度上限,购买按策略授权(默认每笔最高 50 美元),超出需所有者批准。通话、短信、转接和购买都会经过策略检查,可能需要审批。录音需要 calls.record 权限,录音归所有者所有。标记为敏感的按键内容在所有者账本中会被遮蔽。凭据由运行时保存,ORDAN_AGENT_TOKEN 属于机密。

安装

在 SourceWeft 中

  1. 打开 控制台中的 ORDan,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.joshluberisse%2Fordan/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "ordan": {
      "type": "http",
      "url": "https://mcp.ordan.io/mcp"
    }
  }
}

README

该仓库没有 README。

工具

25

ordan.agent.create

Pair with your owner

Register a persistent agent principal. Asks your owner to approve you on ORDan: returns a pairing URL and code for the human. Once approved, this runtime holds your credential (you never see it) and the other ordan.* tools work.

输入参数name必填capabilitiesmonthly_limit_cents

ordan.agent.status

Connection status

Whether your owner has approved you yet, and what you may do.

无需输入参数。

ordan.line.provision

Get a new Line

Provision a phone identity for an agent: a new Line with its own number, bound to you.

输入参数namecountryapprovalarea_codeidempotency_key

ordan.line.list

List your Lines

List your Lines, with each one's spend this month.

无需输入参数。

ordan.line.update

Update a Line

Rename a Line, or set its monthly spend ceiling in cents (spend ceilings are an owner/key decision — an agent credential can only rename).

输入参数line必填namespend_limit_cents

ordan.line.release

Release a Line

Release one of your Lines and its number (requires numbers.release).

输入参数line必填

ordan.number.list

List your numbers

List your numbers, each with the Line it is attached to: those on your Lines, and any you bought that are not on a Line (requires numbers.provision or numbers.release). Use it to find a number that was bought but not attached to a Line.

无需输入参数。

ordan.number.release

Release a number

Release a number you bought that is not in use on a Line back to the carrier (requires numbers.release). A number on a Line goes with its Line: use ordan.line.release.

输入参数number必填

ordan.call.create

Place a call

Place a policy-checked outbound call. If you have one Line it is used; with several, pass `line`. If policy needs a human, the error carries details.approval_request (apr_…): retry with `approval` set to it once your owner approves.

输入参数to必填linepurposeapprovalcategoryobjectiveidempotency_keymax_duration_seconds

ordan.call.status

Call status

Poll live call state.

输入参数call必填

ordan.call.transfer

Transfer a call

Hand off to a human, mid-call: transfer an in-progress call (policy-checked). If the destination needs your owner's approval, the error carries details.approval_request (apr_…): retry with `approval` once they approve.

输入参数to必填call必填purposeapprovalcategoryidempotency_key

ordan.call.list

List your calls

List your recent calls. status=ringing shows inbound calls waiting to be answered.

输入参数linestatus

ordan.call.answer

Answer a call

Answer a ringing inbound call routed to you (decline with ordan.call.hangup).

输入参数call必填

ordan.call.hangup

Hang up

Hang up a call.

输入参数call必填

ordan.call.dtmf

Press keys on a call

Navigate a phone menu: press keys (DTMF) on a connected call you hold, e.g. "1" or "2w123#" (w = half-second pause). Set sensitive for PINs or account numbers: your owner's ledger shows them masked.

输入参数call必填digits必填sensitive

ordan.call.record

Record a call

Start or stop recording a connected call (requires calls.record). Recordings belong to your owner: you see that one exists, not its audio.

输入参数call必填action必填

ordan.call.report

Report a call's outcome

Report what happened on a call you made or answered: its transcript and/or its structured outcome (e.g. outcome: appointment_rescheduled, fields: { date, time }). Each is recorded once, in your ledger; ORDan adds the call's measured duration.

输入参数call必填fieldsoutcomesummarytranscript

ordan.sms.send

Send an SMS

Send a message from the agent's line. With several Lines, pass `line`. Approval works as for ordan.call.create.

输入参数to必填body必填linepurposeapprovalcategorysmart_encodingidempotency_key

ordan.sms.read

Read your messages

Read your messages: replies and what you sent. Pass `with` for the whole conversation with one number.

输入参数withdirection

ordan.policy.check

Check an action against policy

Evaluate an action before execution: would policy allow it right now? The action is the capability it uses: voice.outbound (a call), sms.send (a text), calls.transfer (a hand-off) or purchases (a purchase: pass merchant and amount_cents).

输入参数tobodycalllineaction必填purposecategorymerchantamount_centssmart_encoding

ordan.purchase.authorize

Authorize a purchase

Ask before you buy: authorize a purchase on your owner's behalf (requires purchases). Within policy (by default up to $50 each) it is authorized at once; above it your owner approves first (retry with `approval`). ORDan never sees card data: pay the merchant yourself, then call ordan.purchase.complete with what was charged.

输入参数purposeapprovalcategorymerchant必填description必填amount_cents必填

ordan.purchase.complete

Complete a purchase

Record that you made an authorized purchase: what was actually charged (never more than authorized) and the merchant's confirmation number.

输入参数receiptpurchase必填amount_cents必填

ordan.purchase.cancel

Cancel a purchase

Give back an authorization you will not use.

输入参数purchase必填

ordan.usage.get

Usage this month

Read spend against limits for this month.

无需输入参数。

ordan.ledger.read

Read your ledger

Read the agent's event history: what happened (calls, texts, approvals) and what it cost.

输入参数limitsincetypes

版本历史

3
  1. v0.1.4最新Nov 6, 2026
  2. v0.1.3Nov 5, 2026
  3. v0.1.2Nov 3, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。