{
  "data": {
    "a": {
      "slug": "microsoft-excel-graph",
      "name": "Microsoft Excel (Microsoft Graph workbook API)",
      "vendor": "Microsoft",
      "vendorUrl": "https://learn.microsoft.com/en-us/graph/excel-concept-overview",
      "kind": "http-api",
      "category": "spreadsheets",
      "summary": "Workbook endpoints of Microsoft Graph for Excel files stored in OneDrive for work or school and SharePoint. Calls read and write ranges, tables, charts and named items, and run Excel worksheet functions on a file in place.",
      "url": "https://www.anchorterminal.com/tools/microsoft-excel-graph",
      "markdownUrl": "https://www.anchorterminal.com/tools/microsoft-excel-graph.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/microsoft-excel-graph.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/microsoft-excel-graph.json",
      "repo": "https://github.com/microsoftgraph/msgraph-sdk-javascript",
      "license": "MIT (SDKs)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://graph.microsoft.com/v1.0",
      "packages": [
        {
          "registry": "npm",
          "name": "@microsoft/microsoft-graph-client"
        },
        {
          "registry": "pypi",
          "name": "msgraph-sdk"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 tokens from Microsoft Entra ID, after a person registers an app. Registration is self-serve, with no partner or sales approval. The workbook reference pages list delegated permissions only, with Files.ReadWrite as least privileged, and mark application permissions as not supported. The overview page names Files.Read for read actions. A delegated token reaches every file its user can open.",
      "pricing": "byo-plan",
      "pricingNotes": "Workbook calls carry no per-call charge. Microsoft's list of metered Graph APIs names only SharePoint and OneDrive `assignSensitivityLabel`, at $0.00185 a call (https://learn.microsoft.com/en-us/graph/metered-api-list). Files must sit in OneDrive for work or school or SharePoint, which need a Microsoft 365 licence. The Microsoft 365 plan price page refused our reader on 2026-10-08. A free Microsoft 365 E5 developer sandbox is limited to Visual Studio subscribers and members of named partner programmes (https://learn.microsoft.com/en-us/office/developer-program/microsoft-365-developer-program-faq).",
      "priceSummary": "Your plan",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the workbook documentation or the metered API list (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 835,
        "npmWeekly": 2882852,
        "pypiWeekly": 1578201,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://learn.microsoft.com/en-us/graph/api/resources/excel",
      "openapi": "https://raw.githubusercontent.com/microsoftgraph/msgraph-metadata/master/openapi/v1.0/openapi.yaml",
      "capabilities": [
        "sheets.read",
        "sheets.write",
        "sheets.tables",
        "sheets.formulas"
      ],
      "tags": [
        "hosted",
        "official",
        "oauth",
        "openapi",
        "typescript",
        "python",
        "enterprise"
      ],
      "lastRelease": "2025-09-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.5,
        "grade": "C",
        "agentReady": false,
        "rank": 450,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 53,
          "payments": 15,
          "reliability": 62,
          "schema": 85,
          "security": 65,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-06-16: a fix for a token leak through URL userinfo host confusion was merged into msgraph-sdk-javascript and the version set to 3.0.8, but npm still served 3.0.7 on 8 October 2026 and the repository lists no published advisory. Exploiting it needs an attacker-influenced URL passed to the client, and it affects agents that call the workbook API through that client (https://github.com/microsoftgraph/msgraph-sdk-javascript/commit/5438ae90f50ef15d3656f0cf9c5485deee351f19, https://registry.npmjs.org/@microsoft/microsoft-graph-client/latest)"
        ],
        "verdict": "Ranges, tables, charts and 366 worksheet function endpoints are reachable over REST with a public OpenAPI, and a non-persistent session lets an agent test changes without saving them. The reference pages list delegated permissions only, with Files.ReadWrite as the least privileged scope, and writes take no idempotency key.",
        "bestFor": "Agents working on .xlsx files that already live in a Microsoft 365 tenant, and for using Excel's calculation engine through function endpoints.",
        "strengths": [
          "Non-persistent sessions (`persistChanges: false`) keep changes in a temporary copy, so an agent can calculate or test edits without saving",
          "The OpenAPI for Graph v1.0 holds 1,442 workbook paths and 1,765 operations, 366 of the paths for worksheet functions",
          "Error handling guide gives a retry instruction for each of 22 required second-level error codes",
          "Throttling limits are published at 5,000 requests per 10 seconds per app and 1,500 per app per tenant, with `Retry-After` on throttled responses",
          "Microsoft's policy is at least 24 months' notice before a generally available Graph API is removed"
        ],
        "weaknesses": [
          "Reference pages list delegated permissions only and mark application permissions as not supported",
          "Files.ReadWrite is the least privileged permission on the reference pages, even for reading a range or listing rows",
          "No idempotency key on writes. The row-add page says to repeat the request on a 504",
          "Cell values, formulas and number formats are untyped JSON in the OpenAPI",
          "The last Workbooks and charts changelog entry is dated 19 September 2025, and the overview page is dated March 2024"
        ],
        "agentNotes": [
          "Create a session with POST /workbook/createSession and send `workbook-session-id` on every call. Persistent sessions expire after about 5 minutes idle",
          "Set `persistChanges` to false when you only need a calculation or a chart image, so nothing is saved to the file",
          "Send one request at a time per workbook and wait for each response. Microsoft warns that parallel writes cause throttling, timeouts and merge conflicts",
          "Add rows in one call with a two-dimensional `values` array, and check the table before repeating a row add that returned 504",
          "Read bounded addresses such as A1:D500. A whole-column range such as C:C returns null for values, and writes to it are refused"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.5
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 53,
          "payments": 15,
          "reliability": 62,
          "schema": 85,
          "security": 65,
          "transparency": 65
        },
        "provenanceScore": 85
      },
      "connect": {
        "http": "curl https://graph.microsoft.com/v1.0/me/drive/items/{id}/workbook/worksheets \\\n  -H \"Authorization: Bearer $MS_GRAPH_TOKEN\" \\\n  -H \"workbook-session-id: $SESSION_ID\""
      },
      "letme": {
        "capability": "https://letme.dev/sheets.read",
        "tool": "https://letme.dev/microsoft-excel-graph"
      },
      "sameCompany": [
        "azure-foundry-fine-tuning",
        "azure-ai-content-safety",
        "azure-speech-to-text",
        "azure-text-to-speech",
        "microsoft-agent-framework",
        "microsoft-execution-containers",
        "microsoft-entra-agent-id",
        "azure-key-vault",
        "azure-devops-mcp",
        "microsoft-learn-mcp",
        "playwright-mcp",
        "azure-mcp",
        "azure-maps",
        "azure-translator",
        "microsoft-graph-calendar",
        "microsoft-teams",
        "dynamics-365-sales",
        "power-automate",
        "microsoft-advertising-api",
        "outlook-mail-graph"
      ],
      "area": "business",
      "provenance": {
        "legalEntity": "Microsoft Corporation",
        "domain": "microsoft.com",
        "domainRegistered": "1991-05-02",
        "domainNote": "The endpoint is on graph.microsoft.com. microsoft.com publishes a security.txt, but it passed its Expires date on 2026-09-23.",
        "endpointOnVendorDomain": true,
        "terms": "https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use",
        "privacy": "https://privacy.microsoft.com/en-us/privacystatement",
        "statusPage": "https://status.cloud.microsoft",
        "changelog": "https://developer.microsoft.com/en-us/graph/changelog",
        "securityTxt": "expired",
        "checked": "2026-10-08",
        "notes": [
          "www.microsoft.com/.well-known/security.txt still carries Expires 2026-09-23T16:00:00.000Z when read on 2026-10-08.",
          "The Microsoft service health page at status.cloud.microsoft needs JavaScript to show anything.",
          "The Microsoft APIs terms of use name Microsoft Corporation and were last updated in October 2025.",
          "The Microsoft privacy statement was last updated in September 2026.",
          "RDAP for microsoft.com gives a registration date of 1991-05-02."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/microsoft-excel-graph.json",
      "live": {
        "slug": "microsoft-excel-graph",
        "probe": {
          "target": "https://graph.microsoft.com/v1.0",
          "method": "get",
          "lastAt": "2026-10-08T21:12:15.715687497Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 23,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 22,
          "p95ms24h": 57,
          "samples24h": 64,
          "samples30d": 64,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 64,
              "ok": 64
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.cloud.microsoft",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T15:36:56.168932402Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "microsoftgraph/msgraph-sdk-javascript",
            "version": "3.0.7",
            "released": "2023-09-19",
            "seenAt": "2026-10-08T16:20:40.005701271Z"
          },
          {
            "registry": "npm",
            "name": "@microsoft/microsoft-graph-client",
            "version": "3.0.7",
            "seenAt": "2026-10-08T16:20:38.997085198Z"
          },
          {
            "registry": "pypi",
            "name": "msgraph-sdk",
            "version": "1.64.0",
            "released": "2026-10-06",
            "seenAt": "2026-10-08T16:20:39.875494563Z"
          }
        ],
        "githubStars": 835,
        "npmWeekly": 2882852,
        "pypiWeekly": 1578201,
        "securityTxt": {
          "url": "https://microsoft.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2026-09-23T16:00:00.000Z",
          "checkedAt": "2026-10-08T15:39:08.216544687Z"
        },
        "pages": [
          {
            "url": "https://developer.microsoft.com/en-us/graph/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:14.635541799Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7bb1f9551c94"
          }
        ],
        "updatedAt": "2026-10-08T21:12:15.715687497Z"
      }
    },
    "answer": "SeaTable scores 66.3 (B) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 4 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on security \u0026 auth.",
    "b": {
      "slug": "seatable",
      "name": "SeaTable",
      "vendor": "SeaTable GmbH",
      "vendorUrl": "https://seatable.com",
      "kind": "http-api",
      "category": "spreadsheets",
      "summary": "SeaTable is a database of typed rows in tables and bases, sold as a cloud service hosted in Germany and as server software. Agents reach it through a REST API with per-base tokens and an official MCP server.",
      "url": "https://www.anchorterminal.com/tools/seatable",
      "markdownUrl": "https://www.anchorterminal.com/tools/seatable.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/seatable.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/seatable.json",
      "repo": "https://github.com/seatable/seatable-mcp",
      "license": "Proprietary cloud service under the Terms of Service for SeaTable Cloud. The MCP server is MIT. SeaTable Server Enterprise Edition is licensed under an EULA",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://cloud.seatable.io",
      "packages": [
        {
          "registry": "npm",
          "name": "@seatable/mcp-seatable"
        },
        {
          "registry": "pypi",
          "name": "seatable-api"
        },
        {
          "registry": "npm",
          "name": "seatable-api"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve. A signed-in user creates an API token for one base, read-only or read-write, which never expires and can be deleted. Base calls need a Base-Token, a JWT valid for 3 days, obtained from the API token at `/api/v2.1/dtable/app-access-token/`. Account calls (bases, groups, webhooks, sharing) need an Account-Token obtained with the username and password, which never expires and carries the user's full access. The hosted MCP server takes the API token as a Bearer header, or runs an OAuth flow with PKCE and dynamic client registration in which the user enters the API token and the server issues a one-hour access token. The OAuth flow has no scopes.",
      "pricing": "freemium",
      "pricingNotes": "Free cloud plan for up to 25 users with 10,000 rows, 2 GB of files and 3,000 API calls a month for the team, with no card at signup, so an agent can start without a contract. Plus is €7 a user a month billed yearly (€9 monthly) with 10,000 API calls per user, and Enterprise €14 (€18 monthly) with 50,000. Dedicated is sold through sales from 100 users with unlimited calls. Prices are in euros before VAT and aren't converted here. The MCP server is free to use and there is no separate sandbox (checked 2026-10-08).",
      "priceSummary": "Freemium",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API reference, the OpenAPI files, the MCP server's README or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 21,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 103,
        "pypiWeekly": 1657,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://api.seatable.com/",
      "llmsTxt": "https://api.seatable.com/llms.txt",
      "openapi": "https://github.com/seatable/openapi/blob/v6.2/base_operations.yaml",
      "registryName": "io.github.seatable/seatable",
      "capabilities": [
        "sheets.records",
        "sheets.read",
        "sheets.write",
        "sheets.tables",
        "sheets.formulas"
      ],
      "tags": [
        "official",
        "hosted",
        "self-hosted",
        "mcp",
        "free-tier",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "status-page",
        "python",
        "javascript",
        "php",
        "eu-hosted"
      ],
      "lastRelease": "2026-09-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.3,
        "grade": "B",
        "agentReady": false,
        "rank": 241,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 76,
          "payments": 30,
          "reliability": 69,
          "schema": 81,
          "security": 59,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "API tokens are limited to one base and to read-only or read-write, and the official MCP server marks every tool as read-only or destructive. The Free plan allows 3,000 API calls a month in total, and base calls are capped at 200 a minute. The status page showed the base API degraded for 0.77 per cent of 30 days.",
        "bestFor": "Teams that want typed tables hosted in Germany or on their own server, with an agent reading and writing rows through a per-base token or the official MCP server.",
        "strengths": [
          "API tokens are limited to one base, set to read-only or read-write, named per app and deletable, and the token list shows each token's last access time",
          "Official MCP server, MIT-licensed, hosted at `https://mcp.seatable.com/mcp` and listed in the official MCP registry as `io.github.seatable/seatable` at version 1.6.4",
          "All 21 hosted MCP tools carry readOnlyHint, destructiveHint and idempotentHint annotations, and the tool set leaves out table and column changes",
          "Public OpenAPI 3.0 files with 404 operations, plus `llms.txt`, `llms-full.txt` and Markdown copies of the reference pages",
          "Sub-processor list, data processing agreement and security measures are public, and the security page places all user data in Frankfurt and Munich"
        ],
        "weaknesses": [
          "Monthly API call quotas by plan, 3,000 for a whole Free team, 10,000 per user on Plus and 50,000 per user on Enterprise",
          "A 429 response has no body and no Retry-After header is documented, and the REST API has no idempotency keys",
          "Tokens can't be limited to a table, and the MCP tool `query_sql` accepts UPDATE and DELETE statements with no confirmation step",
          "The security page says SeaTable holds no certification, and its bug bounty, expected in 2025, is still described as under construction",
          "No SLA text is published. The pricing page names optional SLAs for Dedicated only, and the terms exclude liability for uninterrupted availability"
        ],
        "agentNotes": [
          "Create an API token for the one base with read-only permission unless writes are needed, then exchange it at `/api/v2.1/dtable/app-access-token/` for a Base-Token",
          "Renew the Base-Token before it expires after 3 days, and send it as `Authorization: Bearer` to `/api-gateway/api/v2/dtables/{base_uuid}/`",
          "Read `x-ratelimit-remaining` and `x-ratelimit-reset` on every base call. SeaTable Cloud allows 200 base calls a minute and answers 429 with no body",
          "Batch writes to save the monthly quota. One call appends or updates up to 1,000 rows over REST and 100 over MCP",
          "Over MCP, prefer `update_rows` and `delete_rows` to `query_sql`, which can run UPDATE and DELETE, and call `get_schema` before writing"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.3
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 76,
          "payments": 30,
          "reliability": 69,
          "schema": 81,
          "security": 59,
          "transparency": 65
        },
        "provenanceScore": 85
      },
      "connect": {
        "install": "npx -y @seatable/mcp-seatable",
        "http": "curl -H \"Authorization: Bearer YOUR_API_TOKEN\" \"https://cloud.seatable.io/api/v2.1/dtable/app-access-token/\"",
        "config": {
          "mcpServers": {
            "seatable": {
              "headers": {
                "Authorization": "Bearer your-api-token"
              },
              "type": "streamable-http",
              "url": "https://mcp.seatable.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/sheets.records",
        "tool": "https://letme.dev/seatable"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "SeaTable GmbH",
        "domain": "seatable.com",
        "domainRegistered": "2010-03-12",
        "endpointOnVendorDomain": true,
        "terms": "https://seatable.com/terms-of-service/",
        "privacy": "https://seatable.com/data-privacy/",
        "statusPage": "https://status.seatable.com",
        "changelog": "https://api.seatable.com/reference/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The imprint names SeaTable GmbH, 117er Ehrenhof 5, 55118 Mainz, Germany, District Court Mainz, commercial register number HRB 49723.",
          "The Terms of Service for SeaTable Cloud are version 1.0.1, published on 14 April 2022. The German original is binding and the English page is a convenience translation.",
          "The privacy policy is version 1.3.0, published on 5 February 2026, and covers registration and the cloud service as well as the website. A data processing agreement (version 1.1.6, 16 October 2024) and a sub-processor list (version 1.1.5, 16 October 2025) are separate public pages.",
          "The MCP server answers at mcp.seatable.com and the API reference at api.seatable.com. The REST API answers at cloud.seatable.io, a second domain the vendor's site links for login. We didn't check the registration record of seatable.io.",
          "seatable.com/.well-known/security.txt and cloud.seatable.io/.well-known/security.txt return 404. The security page gives security@seatable.com for vulnerability reports.",
          "RDAP for seatable.com gives a registration date of 2010-03-12."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/seatable.json",
      "live": {
        "slug": "seatable",
        "probe": {
          "target": "https://cloud.seatable.io",
          "method": "get",
          "lastAt": "2026-10-08T21:12:21.042309916Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 375,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 375,
          "p95ms24h": 411,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.seatable.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:39:09.649561498Z"
        },
        "updatedAt": "2026-10-08T21:12:21.042309916Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Microsoft",
        "b": "SeaTable GmbH",
        "name": "Vendor"
      },
      {
        "a": "https://graph.microsoft.com/v1.0",
        "b": "https://cloud.seatable.io",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Your plan",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (SDKs)",
        "b": "Proprietary cloud service under the Terms of Service for SeaTable Cloud. The MCP server is MIT. SeaTable Server Enterprise Edition is licensed under an EULA",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "21",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.seatable/seatable",
        "name": "MCP registry"
      },
      {
        "a": "2025-09-19",
        "b": "2026-09-04",
        "name": "Last release"
      },
      {
        "a": "2025-10-01",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-01",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "835 stars, 2.9M npm/wk, 1.6M PyPI/wk",
        "b": "103 npm/wk, 1.7k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "SeaTable scores 66.3 (B) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 4 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Microsoft Excel (Microsoft Graph workbook API) or SeaTable?"
      },
      {
        "answer": "Microsoft Excel (Microsoft Graph workbook API) uses an OAuth sign-in. SeaTable needs an API key.",
        "question": "Do Microsoft Excel (Microsoft Graph workbook API) and SeaTable need an API key?"
      },
      {
        "answer": "Yes. Microsoft Excel (Microsoft Graph workbook API) has a hosted endpoint at https://graph.microsoft.com/v1.0 and SeaTable at https://cloud.seatable.io.",
        "question": "Can an agent call Microsoft Excel (Microsoft Graph workbook API) and SeaTable without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 65 against 59"
        ],
        "also": null,
        "goodFor": "Agents working on .xlsx files that already live in a Microsoft 365 tenant, and for using Excel's calculation engine through function endpoints.",
        "slug": "microsoft-excel-graph",
        "watchFor": "Reference pages list delegated permissions only and mark application permissions as not supported"
      },
      {
        "aheadOn": [
          "Reliability, 69 against 62",
          "Payments \u0026 pricing, 30 against 15",
          "Maintenance \u0026 community, 76 against 53"
        ],
        "also": [
          "Runs on your own machine",
          "No incidents deducted, where Microsoft Excel (Microsoft Graph workbook API) loses 4 points for them"
        ],
        "goodFor": "Teams that want typed tables hosted in Germany or on their own server, with an agent reading and writing rows through a per-base token or the official MCP server.",
        "slug": "seatable",
        "watchFor": "Monthly API call quotas by plan, 3,000 for a whole Free team, 10,000 per user on Plus and 50,000 per user on Enterprise"
      }
    ],
    "job": {
      "capability": "sheets.read",
      "name": "Sheets read"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/airtable-vs-microsoft-excel-graph.json",
        "title": "Airtable vs Microsoft Excel (Microsoft Graph workbook API)",
        "url": "https://www.anchorterminal.com/compare/airtable-vs-microsoft-excel-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-microsoft-excel-graph.json",
        "title": "Baserow vs Microsoft Excel (Microsoft Graph workbook API)",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-microsoft-excel-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coda-vs-microsoft-excel-graph.json",
        "title": "Coda (Superhuman Docs) vs Microsoft Excel (Microsoft Graph workbook API)",
        "url": "https://www.anchorterminal.com/compare/coda-vs-microsoft-excel-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coda-vs-seatable.json",
        "title": "Coda (Superhuman Docs) vs SeaTable",
        "url": "https://www.anchorterminal.com/compare/coda-vs-seatable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-sheets-api-vs-microsoft-excel-graph.json",
        "title": "Google Sheets API vs Microsoft Excel (Microsoft Graph workbook API)",
        "url": "https://www.anchorterminal.com/compare/google-sheets-api-vs-microsoft-excel-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-sheets-api-vs-seatable.json",
        "title": "Google Sheets API vs SeaTable",
        "url": "https://www.anchorterminal.com/compare/google-sheets-api-vs-seatable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grist-vs-microsoft-excel-graph.json",
        "title": "Grist vs Microsoft Excel (Microsoft Graph workbook API)",
        "url": "https://www.anchorterminal.com/compare/grist-vs-microsoft-excel-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-nocodb.json",
        "title": "Microsoft Excel (Microsoft Graph workbook API) vs NocoDB",
        "url": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-nocodb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-smartsheet.json",
        "title": "Microsoft Excel (Microsoft Graph workbook API) vs Smartsheet API + MCP",
        "url": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-smartsheet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable.json",
        "title": "Microsoft Excel (Microsoft Graph workbook API) vs Teable",
        "url": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airtable-vs-seatable.json",
        "title": "Airtable vs SeaTable",
        "url": "https://www.anchorterminal.com/compare/airtable-vs-seatable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-seatable.json",
        "title": "Baserow vs SeaTable",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-seatable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grist-vs-seatable.json",
        "title": "Grist vs SeaTable",
        "url": "https://www.anchorterminal.com/compare/grist-vs-seatable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nocodb-vs-seatable.json",
        "title": "NocoDB vs SeaTable",
        "url": "https://www.anchorterminal.com/compare/nocodb-vs-seatable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/seatable-vs-smartsheet.json",
        "title": "SeaTable vs Smartsheet API + MCP",
        "url": "https://www.anchorterminal.com/compare/seatable-vs-smartsheet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/seatable-vs-teable.json",
        "title": "SeaTable vs Teable",
        "url": "https://www.anchorterminal.com/compare/seatable-vs-teable"
      }
    ],
    "scores": [
      {
        "by": 7,
        "edge": "seatable",
        "key": "reliability",
        "microsoft-excel-graph": 62,
        "name": "Reliability",
        "seatable": 69,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "microsoft-excel-graph",
        "key": "schema",
        "microsoft-excel-graph": 85,
        "name": "Schema \u0026 documentation",
        "seatable": 81,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "seatable",
        "key": "ergonomics",
        "microsoft-excel-graph": 73,
        "name": "Agent ergonomics",
        "seatable": 74,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "microsoft-excel-graph",
        "key": "security",
        "microsoft-excel-graph": 65,
        "name": "Security \u0026 auth",
        "seatable": 59,
        "weight": 14
      },
      {
        "by": 15,
        "edge": "seatable",
        "key": "payments",
        "microsoft-excel-graph": 15,
        "name": "Payments \u0026 pricing",
        "seatable": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 23,
        "edge": "seatable",
        "key": "maintenance",
        "microsoft-excel-graph": 53,
        "name": "Maintenance \u0026 community",
        "seatable": 76,
        "weight": 7
      },
      {
        "by": 0,
        "edge": "",
        "key": "transparency",
        "microsoft-excel-graph": 75,
        "name": "Transparency \u0026 trust",
        "seatable": 75,
        "weight": 7
      }
    ],
    "summary": "SeaTable scores 66.3 (B) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 4 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on security \u0026 auth. Both do sheets read.",
    "verdicts": {
      "microsoft-excel-graph": "Ranges, tables, charts and 366 worksheet function endpoints are reachable over REST with a public OpenAPI, and a non-persistent session lets an agent test changes without saving them. The reference pages list delegated permissions only, with Files.ReadWrite as the least privileged scope, and writes take no idempotency key.",
      "seatable": "API tokens are limited to one base and to read-only or read-write, and the official MCP server marks every tool as read-only or destructive. The Free plan allows 3,000 API calls a month in total, and base calls are capped at 200 a minute. The status page showed the base API degraded for 0.77 per cent of 30 days."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-seatable",
    "json": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-seatable.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-seatable.md",
    "slim": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-seatable.min.md"
  },
  "markdown": "SeaTable scores 66.3 (B) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 4 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on security \u0026 auth. Both do sheets read.\n\n- Microsoft Excel (Microsoft Graph workbook API): grade C, 58.5/100, rank #450 of 722. Markdown https://www.anchorterminal.com/tools/microsoft-excel-graph.md · JSON https://www.anchorterminal.com/api/v1/tools/microsoft-excel-graph.json\n- SeaTable: grade B, 66.3/100, rank #241 of 722. Markdown https://www.anchorterminal.com/tools/seatable.md · JSON https://www.anchorterminal.com/api/v1/tools/seatable.json\n\n## Which one, for what\n\n### Microsoft Excel (Microsoft Graph workbook API) (C)\n\nGood for: Agents working on .xlsx files that already live in a Microsoft 365 tenant, and for using Excel's calculation engine through function endpoints.\n\nAhead on:\n- Security \u0026 auth, 65 against 59\n\nWatch for: Reference pages list delegated permissions only and mark application permissions as not supported\n\n### SeaTable (B)\n\nGood for: Teams that want typed tables hosted in Germany or on their own server, with an agent reading and writing rows through a per-base token or the official MCP server.\n\nAhead on:\n- Reliability, 69 against 62\n- Payments \u0026 pricing, 30 against 15\n- Maintenance \u0026 community, 76 against 53\n\nAlso in its favour:\n- Runs on your own machine\n- No incidents deducted, where Microsoft Excel (Microsoft Graph workbook API) loses 4 points for them\n\nWatch for: Monthly API call quotas by plan, 3,000 for a whole Free team, 10,000 per user on Plus and 50,000 per user on Enterprise\n\n\n## Score by category\n\n| Category | Weight | Microsoft Excel (Microsoft Graph workbook API) | SeaTable | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 62 | 69 | SeaTable +7 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 81 | Microsoft Excel (Microsoft Graph workbook API) +4 |\n| Agent ergonomics | 13% (16.2 this run) | 73 | 74 | SeaTable +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 65 | 59 | Microsoft Excel (Microsoft Graph workbook API) +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 30 | SeaTable +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 53 | 76 | SeaTable +23 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 75 | even |\n| Negative events | ≤15 | -4 | 0 | |\n| **Total** | | **58.5 · C** | **66.3 · B** | |\n\n## Facts side by side\n\n| Fact | Microsoft Excel (Microsoft Graph workbook API) | SeaTable |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Microsoft | SeaTable GmbH |\n| Hosted endpoint | `https://graph.microsoft.com/v1.0` | `https://cloud.seatable.io` |\n| Transports | HTTP | HTTP, stdio |\n| Auth | OAuth | API key |\n| Pricing | Your plan | Freemium |\n| x402 | no | no |\n| Licence | MIT (SDKs) | Proprietary cloud service under the Terms of Service for SeaTable Cloud. The MCP server is MIT. SeaTable Server Enterprise Edition is licensed under an EULA |\n| Tools exposed | none | 21 |\n| Read-only variant documented | no | yes |\n| llms.txt | no | yes |\n| MCP registry | not listed | `io.github.seatable/seatable` |\n| Last release | 2025-09-19 | 2026-09-04 |\n| Terms last updated | 2025-10-01 | no date given |\n| Privacy policy last updated | 2026-09-01 | no date given |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 835 stars, 2.9M npm/wk, 1.6M PyPI/wk | 103 npm/wk, 1.7k PyPI/wk |\n\n## Verdicts\n\n**Microsoft Excel (Microsoft Graph workbook API).** Ranges, tables, charts and 366 worksheet function endpoints are reachable over REST with a public OpenAPI, and a non-persistent session lets an agent test changes without saving them. The reference pages list delegated permissions only, with Files.ReadWrite as the least privileged scope, and writes take no idempotency key.\n\n**SeaTable.** API tokens are limited to one base and to read-only or read-write, and the official MCP server marks every tool as read-only or destructive. The Free plan allows 3,000 API calls a month in total, and base calls are capped at 200 a minute. The status page showed the base API degraded for 0.77 per cent of 30 days.\n\n## Before you call either\n\n### Microsoft Excel (Microsoft Graph workbook API)\n\n1. Create a session with POST /workbook/createSession and send `workbook-session-id` on every call. Persistent sessions expire after about 5 minutes idle\n2. Set `persistChanges` to false when you only need a calculation or a chart image, so nothing is saved to the file\n3. Send one request at a time per workbook and wait for each response. Microsoft warns that parallel writes cause throttling, timeouts and merge conflicts\n4. Add rows in one call with a two-dimensional `values` array, and check the table before repeating a row add that returned 504\n5. Read bounded addresses such as A1:D500. A whole-column range such as C:C returns null for values, and writes to it are refused\n\n### SeaTable\n\n1. Create an API token for the one base with read-only permission unless writes are needed, then exchange it at `/api/v2.1/dtable/app-access-token/` for a Base-Token\n2. Renew the Base-Token before it expires after 3 days, and send it as `Authorization: Bearer` to `/api-gateway/api/v2/dtables/{base_uuid}/`\n3. Read `x-ratelimit-remaining` and `x-ratelimit-reset` on every base call. SeaTable Cloud allows 200 base calls a minute and answers 429 with no body\n4. Batch writes to save the monthly quota. One call appends or updates up to 1,000 rows over REST and 100 over MCP\n5. Over MCP, prefer `update_rows` and `delete_rows` to `query_sql`, which can run UPDATE and DELETE, and call `get_schema` before writing\n\n## Questions\n\n### Which is better for AI agents, Microsoft Excel (Microsoft Graph workbook API) or SeaTable?\n\nSeaTable scores 66.3 (B) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 4 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on security \u0026 auth.\n\n### Do Microsoft Excel (Microsoft Graph workbook API) and SeaTable need an API key?\n\nMicrosoft Excel (Microsoft Graph workbook API) uses an OAuth sign-in. SeaTable needs an API key.\n\n### Can an agent call Microsoft Excel (Microsoft Graph workbook API) and SeaTable without installing anything?\n\nYes. Microsoft Excel (Microsoft Graph workbook API) has a hosted endpoint at https://graph.microsoft.com/v1.0 and SeaTable at https://cloud.seatable.io.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-seatable.json, and with the fewest tokens: https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-seatable.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"microsoft-excel-graph\", \"b\": \"seatable\"}`. From a terminal: `anchor compare microsoft-excel-graph seatable`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/microsoft-excel-graph.json and https://www.anchorterminal.com/api/v1/tools/seatable.json\n\n## Other comparisons with Microsoft Excel (Microsoft Graph workbook API) or SeaTable\n\n- [Airtable vs Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/compare/airtable-vs-microsoft-excel-graph.md)\n- [Baserow vs Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/compare/baserow-vs-microsoft-excel-graph.md)\n- [Coda (Superhuman Docs) vs Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/compare/coda-vs-microsoft-excel-graph.md)\n- [Coda (Superhuman Docs) vs SeaTable](https://www.anchorterminal.com/compare/coda-vs-seatable.md)\n- [Google Sheets API vs Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/compare/google-sheets-api-vs-microsoft-excel-graph.md)\n- [Google Sheets API vs SeaTable](https://www.anchorterminal.com/compare/google-sheets-api-vs-seatable.md)\n- [Grist vs Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/compare/grist-vs-microsoft-excel-graph.md)\n- [Microsoft Excel (Microsoft Graph workbook API) vs NocoDB](https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-nocodb.md)\n- [Microsoft Excel (Microsoft Graph workbook API) vs Smartsheet API + MCP](https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-smartsheet.md)\n- [Microsoft Excel (Microsoft Graph workbook API) vs Teable](https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable.md)\n- [Airtable vs SeaTable](https://www.anchorterminal.com/compare/airtable-vs-seatable.md)\n- [Baserow vs SeaTable](https://www.anchorterminal.com/compare/baserow-vs-seatable.md)\n- [Grist vs SeaTable](https://www.anchorterminal.com/compare/grist-vs-seatable.md)\n- [NocoDB vs SeaTable](https://www.anchorterminal.com/compare/nocodb-vs-seatable.md)\n- [SeaTable vs Smartsheet API + MCP](https://www.anchorterminal.com/compare/seatable-vs-smartsheet.md)\n- [SeaTable vs Teable](https://www.anchorterminal.com/compare/seatable-vs-teable.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Microsoft Excel (Microsoft Graph workbook API) vs SeaTable",
        "url": ""
      }
    ],
    "description": "SeaTable scores 66.3 (B) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 4 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on security \u0026 auth. Both do sheets read. Category scores, facts, verdicts…",
    "facts": [
      "Microsoft Excel (Microsoft Graph workbook API) C 58.5",
      "SeaTable B 66.3",
      "scores"
    ],
    "h1": "Microsoft Excel (Microsoft Graph workbook API) vs SeaTable",
    "image": "https://www.anchorterminal.com/assets/og/compare-microsoft-excel-graph-vs-seatable.png",
    "path": "/compare/microsoft-excel-graph-vs-seatable",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Microsoft Excel (Microsoft Graph workbook API) vs SeaTable",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-seatable"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 780
  },
  "version": 1
}
