原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Oblio

作者:foreverworks版本 0.1.1i★ –i在你的电脑上运行
注册名称com.foreverworks/oblio

安装

概览

作者提供的说明(英文原文)

Issue and track a Romanian company's invoices on Oblio, with totals computed as ANAF checks them.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 其他
  • 你需要填写:OBLIO_CONFIG

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "oblio": {
      "command": "npx",
      "args": [
        "-y",
        "@foreverworks/mcp-oblio"
      ],
      "env": {
        "OBLIO_CONFIG": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add oblio --env OBLIO_CONFIG=your-value -- npx -y @foreverworks/mcp-oblio

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "oblio": {
      "command": "npx",
      "args": [
        "-y",
        "@foreverworks/mcp-oblio"
      ],
      "env": {
        "OBLIO_CONFIG": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "oblio": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@foreverworks/mcp-oblio"
      ],
      "env": {
        "OBLIO_CONFIG": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • OBLIO_CONFIG 必填 env
    Path of app.json: your Oblio login email, API secret and the company's CIF, as the README describes it.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过域名 foreverworks.com 验证(注册中心会核实域名所有权)

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 32706 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 32706 个服务器的 83% 更新
  • 基础检查结果等于或优于此分类中其他 32706 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Oblio 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:OBLIO_CONFIG

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.1.1)于7天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, Kanal Varna — drains, leaks & plumbing (Varna, BG)

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211前天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

Oblio MCP server

Issue and track a Romanian company's invoices from your AI assistant, through Oblio's API. It reads clients, products, series, VAT rates and issued invoices; it issues invoices and proformas, records payments, and cancels, restores, reverses or deletes invoices. Every tool that makes, changes or unmakes a fiscal document is money: your client asks you first, and shows the total computed the way ANAF checks it.

You need an Oblio account, its API secret, and the tax id (CIF) of the company the server should act on. There is no sandbox: an invoice issued here is real and takes the next number in its series.

What you can ask

  • "Which invoices from September are still unpaid?"
  • "Invoice Client SRL for 8 hours of consulting at 1,000 RON an hour plus 21% VAT, due in 30 days."
  • "Client SRL paid 1,000 EUR on invoice FCT 0042 by bank transfer today. Record it."
  • "Turn proforma PRF 0007 into an invoice."
  • "Reverse invoice FCT 0042, and keep the payment recorded on it."

Install

With Claude Code:

claude mcp add oblio -e OBLIO_CONFIG="<path to Oblio app.json>" -- npx -y @foreverworks/mcp-oblio

Claude Desktop (Settings, Developer, Edit Config) and most other clients read the same command as JSON:

{

"mcpServers": { "oblio": { "command": "npx", "args": ["-y", "@foreverworks/mcp-oblio"], "env": { "OBLIO_CONFIG": " " } } } }

Each runs the published package on Node 22.19 or newer. VS Code and the Claude Desktop bundle ask for OBLIO_CONFIG as they add the server. Cursor reads it from your environment instead (${env:OBLIO_CONFIG}), so set it before you start Cursor. Configuration says what it holds.

From a clone
git clone https://github.com/foreverworks/mcps.git && cd mcps

npm ci && npm run build claude mcp add oblio -e OBLIO_CONFIG=" " -- node "$PWD/servers/oblio/dist/index.js"

In a JSON configuration, the command is node and its one argument the full path of servers/oblio/dist/index.js. To share one running copy between several clients over HTTP, see docs/deploying.md.

Configuration

VariableRequiredMeaning
OBLIO_CONFIGyesPath of app.json (below), which the server only reads. Under systemd, when this is unset, app.json in CREDENTIALS_DIRECTORY (LoadCredential=app.json: ) is used.
OBLIO_STATE_DIRnoWhere the access-token cache goes; the default is in docs/configuration.md.

app.json holds three values, all required:

{

"client_id": " ", "client_secret": " ", "company_cif": " " }

company_cif has no default, so no call can act on a company nobody named. api_base and token_url override Oblio's endpoints, for tests or a proxy. The server never writes app.json, and its errors name a bad field, never a value.

Getting the API secret
  1. Sign in to the Oblio web app.
  2. Open Settings, then Account Data (Setari, Date cont), and copy the API secret.
  3. Put it in app.json as client_secret, with the email you signed in with as client_id.

Oblio makes a new secret every time the account's password is reset, so after a reset app.json needs the new one.

The state folder holds access_token.json, the hour-long token Oblio issues for the secret, written with mode 0600 and locked across processes. The variables every server shares (transport, limits, confirmation) are in docs/configuration.md.

First run

  1. Ask your assistant to run Oblio's health check. It answers with the account, the company CIF from app.json, and whether the account reaches that company. A refused secret shows up here, before anything is issued.
  2. Ask for your series (list_series) and VAT rates (list_vat_rates): an invoice names its series and each line's rate by the names Oblio gives them.

From a shell, node dist/index.js --health prints one OBLIO: line and exits non-zero when the credentials do not work, which suits a timer.

Tools

read changes nothing; write changes something in your Oblio account; money makes, changes or unmakes a fiscal document, and your client asks you before each call.

ToolAccessWhat it does
healthreadWhether the server is up, as which account, on which company CIF, and whether the account reaches that CIF. Always asks Oblio.
list_companiesreadThe companies the account is attached to. Cached 10 minutes.
list_clientsreadSaved clients, filtered by name or CIF, a page at a time. Never cached.
list_productsreadSaved products and services, filtered by name or code, a page at a time. Never cached.
list_seriesreadThe document series and the number each one issues next. Cached 10 minutes, and forgotten after any issue or delete.
list_vat_ratesreadThe VAT rates a line's vat_name and vat_percentage come from. Cached 10 minutes.
list_invoicesreadIssued invoices by period, series, buyer, status (unpaid, paid, cancelled) and e-Factura state, newest first, a page at a time.
get_invoice / get_proformareadOne document by series and number: its PDF and e-Factura links, its total and its payments.
create_proformawriteIssues a proforma. It is not a fiscal document, but it takes a number in its series.
create_invoicemoneyIssues an invoice.
invoice_from_proformamoneyIssues an invoice that references a proforma, with the proforma's client, lines and total.
collect_invoicemoneyRecords a payment received against an issued invoice: how, how much, when, and its reference.
cancel_invoice / restore_invoicemoneyCancels an invoice (its number stays used), or undoes that.
reverse_invoicemoneyIssues the reversing invoice (storno) for an issued one, its total exactly the original's, negated.
delete_invoicemoneyRemoves an invoice for good. Oblio allows it only for the last number in a series.

Money

The seven money tools are marked so in tools/list, and your client asks you to approve each call (Claude Code does, in every permission mode). With MCP_CONFIRM=elicit the server asks you itself instead, in one line computed from the arguments. For example:

Issue invoice in series FCT to Client SRL (CIF RO87654329): 9680.00 RON incl. VAT 1680.00 (1 line), dated 2026-09-28, due 2026-10-28, marked paid by Ordin de plata OP 7001

Record 1000.00 EUR paid on invoice FCT 0042 to Client SRL, Ordin de plata OP 7001, 2026-10-02, leaving 210.00 EUR unpaid Issue a reversing invoice for FCT 0042, Client SRL, total -9680.00 RON, in series FCT, keeping the payment recorded on it DELETE invoice FCT 0042 totalling 9680.00 permanently (no undo; only the last number in a series can be deleted, and anything already sent to ANAF stays there)

The first line is the document in Document input, below. The last is delete_invoice given expect_total; without it the line says "total not given, so not checked". The server puts its name first, so you read oblio: Issue invoice ....

What you approve is what is issued:

  • The total you confirm is the total issued. It is computed by documentTotal (the kit's invoiceTotals.ts), the same function whose result create_invoice returns as computedTotal. After issuing, the document is read back, and if Oblio's total differs the call fails with reason: "total_mismatch", naming the document that was issued. invoice_from_proforma reads the proforma first and holds the invoice to its total.
  • Cancel, restore and delete read the invoice first and answer with what it totalled, the document Oblio acted on and the company's CIF. Given expect_total, a number that names an invoice of another total changes nothing. (Oblio's document read carries no buyer, so the buyer cannot be checked the same way.)
  • A payment is checked against the invoice: the server refuses a cancelled invoice, one already paid in full, and an amount over what is still owed, saying how much that is.

Troubleshooting

`auth`: "Oblio refused the client_id and secret". The secret changed, usually after a password reset. Copy the new one from Settings, Account Data into app.json.

`api` with `reason: "outcome_unknown"` after an issue or a delete. The connection dropped, so nobody knows whether Oblio acted. Look the document up first (get_invoice, or Oblio's web app). If it is not there, call again with the idempotency_key the error reported: Oblio will not issue the same key twice. A repeated collect_invoice is safe as it is: it finds the payment if it landed and records nothing.

`api` with `reason: "total_mismatch"`. The document was issued, but Oblio's total is not the one you confirmed. Open it (get_invoice or get_proforma) and cancel it if it is wrong; do not issue it again.

`api` with Oblio's own message, such as "Seria FCT nu exista". The message names the field or series at fault; list_series and list_vat_rates give the names Oblio expects.

`api` with status 401 or 403 on a call. The account cannot act on the company in company_cif; health and list_companies show which companies it reaches.

`api` with `reason: "drift"`. Oblio's answer changed shape. The server refuses to guess; please report it.

How it works

Document input

create_invoice and create_proforma take the document as a validated input modelled on Oblio's "Parametri document" table, in snake_case. The company's CIF is not part of it: it comes from app.json, so no pasted example can issue against another company.

{

"client": { "name": "Client SRL", "cif": "RO87654329", "vat_payer": true }, "series_name": "FCT", "issue_date": "2026-09-28", "due_date": "2026-10-28", "currency": "RON", "products": [ { "name": "Consulting", "price": "1000.00", "quantity": "8", "measuring_unit": "ora", "vat_name": "Normala", "vat_percentage": "21", "vat_included": false, "product_type": "Serviciu" } ], "collect": { "type": "Ordin de plata", "document_number": "OP 7001" } }

  • Every amount is a decimal string ("1000.00"), checked by a pattern and sent to Oblio as that string, so it never passes through a floating-point number. The arithmetic is the kit's exact decimal.ts.
  • **`vat_

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx