{
  "data": {
    "tool": {
      "category": "banking-data",
      "endpoint": "https://mcp.docfig.com/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/docfig.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/docfig.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/docfig.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 1352,
          "counts": {
            "error": 0,
            "note": 1,
            "warn": 0
          },
          "findings": [
            {
              "rule": "TC24",
              "severity": "note",
              "message": "4 of 4 tools have no outputSchema",
              "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
            }
          ]
        },
        "checkedAt": "2026-11-09T02:20:50Z",
        "count": 4,
        "schemaTokens": 1352,
        "status": "ok",
        "tools": [
          {
            "name": "check_transactions",
            "title": "Check a transactions table",
            "description": "Check a bank or credit card statement's transactions table for errors. Free and offline: no API key, nothing is uploaded. Walks the running balance row by row and reports rows where the balance does not follow, swapped debit and credit columns, sign errors, duplicated or missing rows, dates out of order, and totals that miss the opening or closing balance, each with a likely fix. Give the table as csv_text (CSV or TSV with a header row) or as rows (first row is the header). Same result as `docfig check --json`.",
            "inputSchema": {
              "properties": {
                "closing_balance": {
                  "description": "Closing balance, to check the totals.",
                  "type": "string"
                },
                "csv_text": {
                  "description": "The table as CSV or TSV text, header row first.",
                  "type": "string"
                },
                "date_format": {
                  "description": "How to read dates like 01/02/2026 (default: detected).",
                  "enum": [
                    "DMY",
                    "MDY"
                  ],
                  "type": "string"
                },
                "delimiter": {
                  "description": "CSV delimiter (default: detected).",
                  "type": "string"
                },
                "filename": {
                  "description": "Optional name shown in the report.",
                  "type": "string"
                },
                "opening_balance": {
                  "description": "Opening balance, to check the totals.",
                  "type": "string"
                },
                "rows": {
                  "description": "The table as rows of cells, first row is the header, e.g. [[\"Date\",\"Description\",\"Amount\",\"Balance\"], ...]. Cells are text; numbers and null are accepted too.",
                  "items": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "type": "array"
                },
                "statement_type": {
                  "default": "bank",
                  "description": "card: the balance is the amount owed.",
                  "enum": [
                    "bank",
                    "card"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Check a transactions table"
            }
          },
          {
            "name": "convert_statement",
            "title": "Convert a bank statement",
            "description": "Convert a bank or credit card statement (PDF, scanned PDF, or a JPG, PNG or HEIC photo) into transactions, with every row checked against the balances. Give file_url or file_base64. Returns the bank, period, totals, check status, flagged rows, the first transactions and Excel and CSV download links that work for one hour. Uses the user's DocFig API key and their monthly pages (free key: 100 pages a month at https://docfig.com/api). Account numbers are masked; nothing is stored, results are deleted after one hour.",
            "inputSchema": {
              "properties": {
                "file_base64": {
                  "description": "The file's bytes, base64-encoded (up to 20 MB decoded).",
                  "type": "string"
                },
                "file_url": {
                  "description": "Direct https download link to the statement (PDF, JPG, PNG or HEIC, up to 20 MB). Must be publicly reachable.",
                  "type": "string"
                },
                "filename": {
                  "description": "Optional file name, e.g. march.pdf.",
                  "type": "string"
                },
                "max_transactions": {
                  "default": 25,
                  "description": "How many transactions to include (the rest are in the downloads). Default 25.",
                  "maximum": 500,
                  "minimum": 0,
                  "type": "integer"
                },
                "password": {
                  "description": "Password for a locked PDF. Used once in memory, never stored or logged.",
                  "type": "string"
                },
                "statement_id": {
                  "description": "Instead of a file: the statement_id of an earlier call that was still converting, to fetch its result.",
                  "type": "string"
                },
                "wait_seconds": {
                  "default": 45,
                  "description": "How long to wait for the result before returning the statement_id to check again. Default 45.",
                  "maximum": 600,
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": false,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Convert a bank statement"
            }
          },
          {
            "name": "combine_statements",
            "title": "Combine several statements",
            "description": "Convert several statements (or reuse statement_ids from the last hour) and combine them into one set of accounts: finds missing months (gaps), overlapping periods, duplicated transactions (kept once) and balances that do not carry over. Returns the accounts, problems, counts and links to one combined Excel or CSV file (valid one hour). Uses the user's DocFig API key.",
            "inputSchema": {
              "properties": {
                "files": {
                  "description": "Statements to convert and combine, each with file_url or file_base64.",
                  "items": {
                    "properties": {
                      "file_base64": {
                        "description": "The file's bytes, base64-encoded (up to 20 MB decoded).",
                        "type": "string"
                      },
                      "file_url": {
                        "description": "Direct https download link to the statement (PDF, JPG, PNG or HEIC, up to 20 MB). Must be publicly reachable.",
                        "type": "string"
                      },
                      "filename": {
                        "description": "Optional file name, e.g. march.pdf.",
                        "type": "string"
                      },
                      "password": {
                        "description": "Password for a locked PDF. Used once in memory, never stored or logged.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "maxItems": 12,
                  "type": "array"
                },
                "statement_ids": {
                  "description": "statement_id values of statements converted in the last hour (from convert_statement or an earlier combine_statements call).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "wait_seconds": {
                  "default": 90,
                  "description": "How long to wait for all conversions. Default 90.",
                  "maximum": 600,
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": false,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Combine several statements"
            }
          },
          {
            "name": "usage",
            "title": "Pages left this month",
            "description": "Pages used and left this month for the DocFig API key, and when they reset.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": true,
              "title": "Pages left this month"
            }
          }
        ]
      },
      "name": "DocFig",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "pypi",
          "identifier": "docfig",
          "version": "0.2.0",
          "transport": "stdio"
        },
        {
          "registryType": "npm",
          "identifier": "docfig-api",
          "version": "0.2.0",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/docfig.json",
      "popularity": {
        "npmWeekly": 614
      },
      "registryName": "com.docfig/docfig",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://mcp.docfig.com/mcp"
        }
      ],
      "repository": "",
      "reviewed": false,
      "slug": "docfig",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.docfig/docfig",
      "summary": "Bank statement PDFs to checked transactions, plus a free offline check for transaction tables.",
      "updatedAt": "2026-11-01T07:31:19Z",
      "url": "https://www.anchorterminal.com/tools/docfig",
      "vendor": "docfig.com",
      "vendorUrl": "https://docfig.com/api#mcp",
      "version": "0.2.0",
      "websiteUrl": "https://docfig.com/api#mcp",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/docfig",
    "json": "https://www.anchorterminal.com/tools/docfig.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/docfig.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/tools/docfig.min.md"
  },
  "markdown": "# DocFig\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by docfig.com (https://docfig.com/api#mcp)\n- Category: Bank data \u0026 open banking (https://www.anchorterminal.com/categories/banking-data.md)\n- Listed because: It's published in the registry under docfig.com, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Bank statement PDFs to checked transactions, plus a free offline check for transaction tables.\n\n## Facts\n\n- MCP registry: `com.docfig/docfig` 0.2.0\n- Endpoint: https://mcp.docfig.com/mcp (streamable HTTP)\n- Package: pypi `docfig` (stdio)\n- Package: npm `docfig-api` (stdio)\n- Website: https://docfig.com/api#mcp\n- npm downloads a week: 614\n- Registry entry updated: 2026-11-01\n\n## Tools\n\n- Tools it lists (4, about 1,352 tokens of context, `tools/list` without credentials over MCP 2025-11-25, checked 2026-11-09 02:20 UTC):\n  - `check_transactions` (read-only): Check a bank or credit card statement's transactions table for errors. Free and offline: no API key, nothing is uploaded. Walks the running balance row by row…\n  - `convert_statement` (writes): Convert a bank or credit card statement (PDF, scanned PDF, or a JPG, PNG or HEIC photo) into transactions, with every row checked against the balances. Give…\n  - `combine_statements` (writes): Convert several statements (or reuse statement_ids from the last hour) and combine them into one set of accounts: finds missing months (gaps), overlapping…\n  - `usage` (read-only): Pages used and left this month for the DocFig API key, and when they reset.\n- How its tools read to an agent (0 errors, 0 warnings, 1 note, about 1,352 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - note TC24 server: 4 of 4 tools have no outputSchema\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/docfig.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "DocFig",
        "url": ""
      }
    ],
    "description": "DocFig, an MCP server by docfig.com, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Bank statement PDFs to checked transactions, plus a free offline check for transaction tables.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "DocFig",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/docfig",
    "published": "",
    "section": "indexed",
    "title": "DocFig: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-11-09",
    "url": "https://www.anchorterminal.com/tools/docfig"
  },
  "tokens": {
    "markdown": 750,
    "slim": 680
  },
  "version": 1
}
