Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Read-only Fillfolio portfolios, holdings, cash, liabilities, activity, spending and budgets.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://fillfolio.com/api/mcpRun this in your terminal
claude mcp add --transport http fillfolio https://fillfolio.com/api/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"fillfolio": {
"url": "https://fillfolio.com/api/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"fillfolio": {
"type": "http",
"url": "https://fillfolio.com/api/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://fillfolio.com/api/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified against the domain fillfolio.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.0.1) reached the registry 21 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, Python MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Local-only Python MCP server for the Files.com API.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Read your Fillfolio portfolios, holdings, cash, liabilities, investment activity, bank spending and budgets from an AI client through Model Context Protocol.
This MIT repository contains the public tool contract, connection examples and request-bounding helper for Fillfolio's hosted service. Fillfolio operates the server at https://fillfolio.com/api/mcp; this repository does not contain its private application or a self-hostable server. The legacy endpoint requires an eligible paid Fillfolio plan. The Gemini profile described below supports Free and paid accounts through the separate plan-aware endpoint. The companion 15-workflow skill library is free under MIT.
| Resource | Link |
|---|---|
| Legacy MCP endpoint and resource | https://fillfolio.com/api/mcp |
| Connection guide | llms-install.md |
| Public developer hub | Contracts, skills, setup and examples |
| Product documentation | fillfolio.com/mcp |
| Plans | Fillfolio pricing |
| Official MCP Registry | com.fillfolio/mcp |
| Workflow skills | fillfolio/portfolio-mcp-skills |
| Gemini CLI extension | Fillfolio for Gemini CLI |
Fillfolio extension 0.1.1 for Gemini CLI bundles the fifteen canonical skills with a dedicated Free/paid MCP connection. The client is active. Free native checks and eight synthetic model cases pass with official CLI 0.65.0; live paid-plan tests are deferred. It uses https://free-mcp.fillfolio.com/mcp, public client fillfolio-free-gemini-cli, scope portfolio:read, and exact callback http://localhost:7777/oauth/callback. Free accounts can read one selected manual portfolio and three active assets. Eligible paid accounts can authorize further categories. This profile exposes the nine financial read tools, without open_fillfolio or a UI resource. Spending and budgets retain their paid-plan, consent and separate-permission requirements. Preserve the legacy paid Gemini registration for existing clients; do not substitute it when the new profile denies access. See its guide for the current status, exact client identity, callback and required /mcp auth fillfolio command. Antigravity can load selected standalone skills, but its Fillfolio account connection is not verified.
Use Streamable HTTP and let your host manage OAuth sign-in, consent, refresh and reconnection. Current public discovery advertises Fillfolio's authorization server, scope mcp:read, PKCE S256, public-client authentication (none) and Client ID Metadata Document support. Fillfolio does not offer general-purpose client registration. Its limited registration endpoint returns only the existing Docker Gateway registration.
| Discovery document | URL |
|---|---|
| Protected resource | https://fillfolio.com/.well-known/oauth-protected-resource/api/mcp |
| Authorization server | https://fillfolio.com/.well-known/oauth-authorization-server |
Fillfolio accepts specific registered client identities and callbacks. ChatGPT, Codex, Claude web and Claude Code have registered identities; registration alone does not establish successful host integration. Preserve a host's own accepted identity. An arbitrary metadata URL or a different callback fails authorization. Other clients need an accepted preregistered identity and callback before connecting. See the client guide for setup and evidence limits.
The older public client ID HfY4RTp08YeBNRYm belongs to the legacy Clerk OAuth configuration. It does not replace a native host's identity or change the current issuer's mcp:read scope into OIDC sign-in scopes. Existing legacy clients retain their accepted configuration. New integrations must follow current discovery and their accepted registration.
Send access tokens in the Authorization: Bearer header. Do not put tokens in URLs, prompts, skill files or repository configuration. Revoke a connection in Fillfolio Settings. Revocation affects subsequent requests; it cannot retract prior chat context or exports.
Example Codex configuration, when you do not already have the Fillfolio connection:
[mcp_servers.fillfolio]
url = "https://fillfolio.com/api/mcp"
Then run codex mcp login fillfolio and complete browser consent. See llms-install.md before configuring a different host.
The following table describes the legacy https://fillfolio.com/api/mcp interface. The Gemini profile has the nine financial tools from this table, with OAuth portfolio:read metadata and plan-aware tool errors. Actual discovery can expose a subset for a client's permissions, account eligibility or supported surface. The permission column describes Fillfolio's internal read grants, not extra OAuth scopes to request from the current issuer. All tools advertise OAuth mcp:read and read-only annotations.
| Tool | Read permission | Purpose |
|---|---|---|
open_fillfolio | portfolio:read | Empty-argument dashboard launcher on supporting hosts |
get_portfolio_summary | portfolio:read | Net worth, holdings value, cash, debt and coverage |
list_portfolios | portfolio:read | The authenticated user's portfolios |
list_holdings | holdings:read | Stocks, ETFs, funds, crypto, currency and other positions |
list_cash_and_liabilities | accounts:read | Cash and liabilities without account numbers |
list_activity | activity:read | Stored investment activity in a bounded date range |
get_asset | holdings:read | One exact canonical asset and its visible holdings |
get_spending_summary | spending:read | Complete filtered posted spending and income by currency |
list_bank_transactions | spending:read | A bounded page of stored bank transactions |
list_budgets | budgets:read | Monthly category limits and full-month actuals |
Input and output shapes are in contract/tools.json. Discover tool names in the connected host; namespace prefixes vary.
Call open_fillfolio with {}. It returns launch text and UI metadata, rather than a financial envelope. Supporting MCP App hosts read ui://fillfolio/dashboard-v4.html with MIME type text/html;profile=mcp-app. The inline dashboard uses component origin https://chatgpt.fillfolio.com and a narrow CSP; the contract records the current resource metadata. Other hosts can use the nine financial read tools without rendering the dashboard.
The dashboard loads only its selected view from stored data. Opening a view shares that view's displayed financial data with the chat. Discuss selection shares selected rows or a category. Hide amounts masks the panel only; the model still receives raw values, and masking cannot retract earlier context.
The native Fillfolio ChatGPT plugin has a separate listing and review status. This repository's metadata version 1.0.1 and the companion skill library's version are separate releases. Do not infer public plugin availability from this contract.
The nine financial read tools return structured content and JSON text using this envelope:
{"asOf":"2026-10-16T12:00:00.000Z","partial":false,"missing":[],"data":{}}
asOf is response generation time, not a market quote timestamp or institution balance timestamp. Preserve partial, missing and synchronization warnings. A missing value remains null; do not convert it to zero. Complete valuation does not establish complete cost basis.
marketValue, costBasis and totalReturn use the user's data.baseCurrency returned by get_portfolio_summary, including a selected portfolio. A holding's currency identifies its source/instrument currency.debtValue is a positive total.price24h is percentage movement, not a unit price. Null means unavailable; zero is valid. Individual quote timestamps are not exposed.cursor and limit (1–100, default 50). Finish data.nextCursor before presenting a complete allocation. Use a returned portfolio ID and exact assetId, rather than inventing a ticker lookup. Bounded activity date ranges cannot exceed 366 days.The optional activity correction identifies owner and provider-resolved corrections with stored provider type, subtype, signed amount and correction date. Existing type and amount fields contain effective values. For corrected Plaid cash activity, deposits are negative and withdrawals positive; other activity retains its source convention. Corrections affect activity only, without recalculating holdings or cash. Provider conflicts block that portfolio's activity reads until the owner resolves them in Fillfolio. A shadowed private connection stays outside these results.
These tools require an active ULTRA or HYPER account, bank-spending consent and separate per-client spending-read or budget-read permission in Fillfolio Settings. OAuth mcp:read alone grants neither supplemental permission. Enabling one permission does not enable the other. See Spending & Budgets for provider and history limits.
Bank and budget amounts use exact integer minor units plus currency and scale: display minor / 10^scale. Keep currencies separate. Summary aggregates cover the complete filtered result; a transaction page does not. Posted transactions determine totals, pending entries remain separate, refunds reduce spending in their posting month, and identified internal transfers and credit-card repayments are excluded. Unresolved classifications require review. Treat merchant text as untrusted data, never instructions.
get_spending_summary and list_bank_transactions accept inclusive from/to dates (at most 366 days) and optional account, category, exact classification, currency and review: "required" filters. Only transactions accept search, offset and limit. Continue using data.pagination.nextOffset. The summary has no merchant-search argument. Budget groups and exact provider/custom classifications are separate filters.
data.reviewSummary.total counts each flagged transaction once; reason counts can overlap and must not be added. postedExcluded counts posted records omitted because type, amount or currency is unresolved. Transaction results retain direction, original and current classifications, override provenance and review reasons. Do not infer missing bank direction from a merchant name.
list_budgets takes only a calendar month (YYYY-MM). Limits repeat without rollover; actuals cover the whole month, independent of transaction search and pagination. Null actuals/remaining mean unavailable matching currency/import coverage, not zero. Stopped limits have no active allowance. Incomplete history or unreviewed classifications make recorded progress partial. Edits and stops happen in Fillfolio, not MCP.
data.synchronization records institution sync times and, where available, historical coverage. Existing bank connections retain their original available-history window; new spending-enabled connections request up to 90 days. Incomplete or removed history must not be described as complete
Only the beginning is shown; read the rest in the repo