{
  "data": {
    "a": {
      "slug": "linear-mcp",
      "name": "Linear MCP",
      "vendor": "Linear",
      "vendorUrl": "https://linear.app",
      "kind": "mcp",
      "category": "productivity",
      "summary": "Linear's centrally hosted MCP server for finding, creating and updating issues, projects and comments, with a read-only endpoint variant.",
      "url": "https://www.anchorterminal.com/tools/linear-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/linear-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/linear-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/linear-mcp.json",
      "license": "proprietary",
      "transports": [
        "streamable-http",
        "sse"
      ],
      "remoteUrl": "https://mcp.linear.app/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "OAuth 2.1 with dynamic client registration (interactive), or a Linear API key / Bearer token in the Authorization header; enterprise Okta SAML managed auth. Read-only endpoint: https://mcp.linear.app/mcp/readonly. Legacy SSE: https://mcp.linear.app/sse.",
      "pricing": "byo-plan",
      "pricingNotes": "No separate charge; available to Linear workspaces (Linear has a free plan). No plan restriction stated in docs.",
      "priceSummary": "Your plan",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in Linear docs.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://linear.app/docs/mcp",
      "llmsTxt": "https://linear.app/llms.txt",
      "registryName": "app.linear/linear",
      "capabilities": [
        "work.issues"
      ],
      "tags": [
        "official",
        "hosted",
        "oauth",
        "read-only-mode",
        "llms-txt"
      ],
      "lastRelease": "2026-08-13",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.8,
        "grade": "D",
        "agentReady": false,
        "rank": 698,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 38,
          "maintenance": 57,
          "payments": 30,
          "reliability": 60,
          "schema": 51,
          "security": 71,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "OAuth 2.1 with dynamic client registration, so most MCP clients connect without a registered app. No published tool list, schemas or MCP error responses.",
        "bestFor": "Teams on Linear who want an agent to triage, file and update issues under the user's permissions, with a hard read-only option.",
        "strengths": [
          "OAuth 2.1 with dynamic client registration, so most MCP clients connect without a registered app",
          "A `read` OAuth scope and Read-only API keys that can't reach write APIs, plus a `/mcp/readonly` endpoint",
          "llms.txt with Markdown pages, including the MCP page",
          "SOC 2 Type II and ISO 27001:2022 on the security page",
          "Enterprise-managed MCP authorisation through Okta since 13 August 2026"
        ],
        "weaknesses": [
          "No published tool list, schemas or MCP error responses",
          "No MCP component on linearstatus.com",
          "Rate limits are documented for the GraphQL API only, and a limit returns HTTP 400 rather than 429",
          "The privacy policy (March 2025) says US hosting while the security page lets a workspace choose EU or US",
          "SSE endpoint deprecated with no end date"
        ],
        "agentNotes": [
          "Use `https://mcp.linear.app/mcp/readonly` for triage and reporting, it only exposes read tools",
          "Headless runs take `Authorization: Bearer \u003cAPI key\u003e`, and a key created with Read permission can't write",
          "Treat an HTTP 400 with RATELIMITED as a rate limit and wait for the X-RateLimit-Requests-Reset time",
          "Call `list_teams` first, since team visibility and retired teams come back in its output"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.8
          }
        ],
        "editorialScores": {
          "ergonomics": 38,
          "maintenance": 57,
          "payments": 30,
          "reliability": 60,
          "schema": 51,
          "security": 71,
          "transparency": 50
        },
        "provenanceScore": 92
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http linear https://mcp.linear.app/mcp",
        "config": {
          "mcpServers": {
            "linear": {
              "url": "https://mcp.linear.app/mcp/readonly"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/work.issues",
        "tool": "https://letme.dev/linear-mcp"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Linear Orbit, Inc.",
        "domain": "linear.app",
        "domainRegistered": "2018-05-09",
        "endpointOnVendorDomain": true,
        "terms": "https://linear.app/terms",
        "privacy": "https://linear.app/privacy",
        "statusPage": "https://linearstatus.com",
        "changelog": "https://linear.app/changelog",
        "securityTxt": "valid",
        "checked": "2026-09-26",
        "score": 92
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/linear-mcp.json",
      "live": {
        "slug": "linear-mcp",
        "probe": {
          "target": "https://mcp.linear.app/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-10-10T02:07:14.14917911Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 39,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 42,
          "p95ms24h": 96,
          "samples24h": 250,
          "samples30d": 3412,
          "days": [
            {
              "date": "2026-09-27",
              "probes": 132,
              "ok": 132
            },
            {
              "date": "2026-09-28",
              "probes": 285,
              "ok": 285
            },
            {
              "date": "2026-09-29",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-09-30",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 22,
              "ok": 22
            }
          ]
        },
        "vendorStatus": {
          "page": "https://linearstatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:06:07.158673297Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "app.linear/linear",
            "version": "1.0.1",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          }
        ],
        "securityTxt": {
          "url": "https://linear.app/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-12-31T23:59:00.000Z",
          "checkedAt": "2026-10-09T15:39:37.071833113Z"
        },
        "llmsTxt": {
          "url": "https://linear.app/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:14.101532871Z"
        },
        "domain": {
          "domain": "linear.app",
          "registered": "2018-05-09",
          "source": "https://pubapi.registry.google/rdap/domain/linear.app",
          "checkedAt": "2026-10-04T13:07:57.071953694Z"
        },
        "pages": [
          {
            "url": "https://linear.app/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:41:18.795312174Z",
            "changedAt": "2026-10-08T18:21:35.229813709Z",
            "fingerprint": "169ac9bde076"
          },
          {
            "url": "https://linear.app/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:41:21.162055261Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "72f9e13b3180"
          },
          {
            "url": "https://linear.app/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:41:23.02498092Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ed5d18e33054"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.linear.app/mcp",
          "checkedAt": "2026-10-09T21:40:45.598436529Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-09-28T21:55:53.766703197Z"
        },
        "updatedAt": "2026-10-10T02:07:14.14917911Z"
      }
    },
    "answer": "OpenProject scores 57.4 (C) on agent readiness against Linear MCP's 53.8 (D), and leads in 4 of 7 scored categories. Linear MCP leads on reliability and security \u0026 auth.",
    "b": {
      "slug": "openproject",
      "name": "OpenProject",
      "vendor": "OpenProject GmbH",
      "vendorUrl": "https://www.openproject.org",
      "kind": "http-api",
      "category": "project-management",
      "summary": "OpenProject is open-source project management software for work packages, Gantt plans, boards and time tracking, sold as a cloud service and for self-hosting. Agents reach it through the APIv3 REST API, and paid plans add an MCP server.",
      "url": "https://www.anchorterminal.com/tools/openproject",
      "markdownUrl": "https://www.anchorterminal.com/tools/openproject.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/openproject.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openproject.json",
      "repo": "https://github.com/opf/openproject",
      "license": "GPL-3.0 for the OpenProject source. Enterprise add-ons need a paid token, and OpenProject Enterprise cloud runs under OpenProject's Terms of Service",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Access is self-serve. A user creates a named personal API token in account settings and sends it as `Authorization: Bearer`, or as the Basic auth password with the user name `apikey`. The token carries that user's permissions, and no per-token scope or expiry was found. An administrator can register OAuth 2.0 applications for the authorisation code grant, PKCE or client credentials, with one scope per API (`api_v3`, `mcp`, `scim_v2`, `bcf_v2_1`). JWTs from a configured OIDC provider are also accepted. No app review or partner approval is described.",
      "pricing": "freemium",
      "pricingNotes": "The Community edition is free to self-host with the REST API included, and the cloud has a 14-day trial with no credit card, so an agent can start without a contract. Cloud plans are per user per month on a yearly term, Basic $7.25 (from 5 users, $8.50 on a monthly term), Professional $13.50 (from 25 users) and Premium $19.50 (from 100 users), with Corporate on request. Euro prices are 5.95, 10.95 and 15.95. API calls are not priced. The MCP server needs Professional or above. Community is not sold as a cloud plan (https://www.openproject.org/pricing/, checked 2026-10-08).",
      "priceSummary": "$7.25 / seat-mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the OpenAPI document or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 16352,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.openproject.org/docs/api/",
      "openapi": "https://www.openproject.org/docs/api/v3/spec.yml",
      "capabilities": [
        "tasks.create",
        "tasks.update",
        "projects.manage",
        "tasks.comments",
        "projects.reporting",
        "events.webhooks-send"
      ],
      "tags": [
        "official",
        "hosted",
        "self-hosted",
        "open-source",
        "rest",
        "openapi",
        "oauth",
        "mcp",
        "freemium",
        "free-trial",
        "webhooks",
        "status-page",
        "sla",
        "eu-hosting",
        "project-management"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.4,
        "grade": "C",
        "agentReady": false,
        "rank": 610,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 11,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 75,
          "payments": 30,
          "reliability": 52,
          "schema": 76,
          "security": 59,
          "transparency": 87
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -5,
        "negativeNotes": [
          "2026-06-08. 13 advisories rated critical were published against opf/openproject between January and June 2026, among them cache store poisoning leading to remote code execution (GHSA-qj96-f42f-6336, fixed in 17.3.3 and 17.4.1), SQL injection in the timestamps function (GHSA-98vw-2r87-fx2r) and a pre-authentication remote code execution in the Docker image through a default secret key (GHSA-r85r-gjq2-f83r, 13 May 2026). OpenProject published them itself, and its policy is to publish each advisory with the fixing release, so the deduction is reduced, -3 (https://github.com/opf/openproject/security/advisories).",
          "2026-09-30. 83 advisories in all were published in the twelve months to 8 October 2026, several of them missing permission checks in APIv3 that exposed private work package data across projects. Several credit the YesWeHack bounty sponsored by the European Commission. The advisories give self-hosted version numbers and do not say when the cloud was patched. Fixed and published, -2 (https://github.com/opf/openproject/security/advisories)."
        ],
        "verdict": "OpenProject's APIv3 has a public OpenAPI 3.1 document with 320 operations, stable error identifiers and optimistic locking, and the same API ships in the free GPL-3.0 Community edition. No request limits are published, API tokens carry their user's full permissions, and 83 security advisories were published in the last twelve months, 13 rated critical.",
        "bestFor": "Teams that want a self-hostable or EU-hosted project tool with Gantt, time tracking and budgets, and an agent working through a documented REST API.",
        "strengths": [
          "OpenAPI 3.1 document with 234 paths and 320 operations, public on the docs site and served by every instance at `/api/v3/spec.json`",
          "Errors carry a stable `errorIdentifier` URN, and validation failures list one entry per property",
          "The Community edition is GPL-3.0 and free to self-host with the REST API included, and the cloud trial needs no credit card",
          "Seven releases between 5 August and 1 October 2026, with security fixes published as GitHub advisories and CVEs",
          "The service description commits to 99.9 per cent yearly availability with service credits, and an EU shard keeps all sub-processors in the EU"
        ],
        "weaknesses": [
          "83 advisories published against opf/openproject in the twelve months to 8 October 2026, 13 rated critical, among them remote code execution and SQL injection",
          "No request limit, 429 behaviour or Retry-After guidance is published for the cloud API",
          "Personal API tokens act with their user's full permissions, and OAuth has one scope per API with no read-only form",
          "No official SDK. The client libraries the docs list are community projects the vendor says it does not vet",
          "The MCP server is an Enterprise add-on for the Professional plan and above, which starts at 25 users"
        ],
        "agentNotes": [
          "Send the API token as `Authorization: Bearer \u003ctoken\u003e`, or as the Basic auth password with the user name `apikey`",
          "Read the resource first and send its current `lockVersion` with every PATCH. A stale value returns 409 `UpdateConflict`",
          "POST to the `/form` endpoint of a work package to learn writable fields and allowed values before creating or updating",
          "URL-encode `filters` as a JSON array, and add `pageSize`, `offset` and `select` to keep work package lists small",
          "Run the agent as a dedicated user with a narrow project role, and treat work package text and comments as untrusted input"
        ],
        "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": 57.4
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 75,
          "payments": 30,
          "reliability": 52,
          "schema": 76,
          "security": 59,
          "transparency": 79
        },
        "provenanceScore": 95
      },
      "connect": {
        "http": "curl -H \"Authorization: Bearer $API_KEY\" https://community.openproject.org/api/v3/users/42"
      },
      "letme": {
        "capability": "https://letme.dev/tasks.create",
        "tool": "https://letme.dev/openproject"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Community (self-hosted)",
          "unit": "seat-month",
          "usd": 0,
          "note": "free, REST API included; not sold as a cloud plan"
        },
        {
          "item": "Basic (cloud)",
          "unit": "seat-month",
          "usd": 7.25,
          "note": "yearly term, from 5 users; $8.50 on a monthly term"
        },
        {
          "item": "Professional (cloud)",
          "unit": "seat-month",
          "usd": 13.5,
          "note": "yearly term, from 25 users; includes the MCP server"
        },
        {
          "item": "Premium (cloud)",
          "unit": "seat-month",
          "usd": 19.5,
          "note": "yearly term, from 100 users"
        }
      ],
      "provenance": {
        "legalEntity": "OpenProject GmbH",
        "domain": "openproject.org",
        "domainRegistered": "2003-10-24",
        "endpointOnVendorDomain": true,
        "terms": "https://www.openproject.org/legal/terms-of-service/",
        "privacy": "https://www.openproject.org/legal/privacy/",
        "statusPage": "https://status.openproject.com",
        "changelog": "https://www.openproject.org/docs/release-notes/",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Terms of Service (last updated 6 August 2026) name OpenProject GmbH, Krausenstrasse 9, 10117 Berlin, Germany, and cover both the cloud and the on-premises Enterprise edition. The German version takes precedence.",
          "The privacy policy (version 30 July 2026) has a section on OpenProject Enterprise Cloud, where OpenProject GmbH is processor and the customer controller. The data processing agreement at https://www.openproject.org/legal/data-processing-agreement/ is part of the terms.",
          "Cloud instances answer at \u003cname\u003e.openproject.com or, on the EU shard, an openproject.eu host. Both are the vendor's domains, apart from the openproject.org site that carries the docs and legal pages. Self-hosted instances answer on the owner's domain.",
          "www.openproject.org/.well-known/security.txt is PGP-signed, names security@openproject.com and expires on 31 December 2026.",
          "RDAP for openproject.org gives a registration date of 2003-10-24 and InterNetX GmbH as registrar."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openproject.json",
      "live": {
        "slug": "openproject",
        "vendorStatus": {
          "page": "https://status.openproject.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:06.311707633Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "opf/openproject",
            "version": "v17.9.1",
            "released": "2026-10-01",
            "seenAt": "2026-10-09T17:11:02.811144094Z"
          }
        ],
        "githubStars": 16363,
        "securityTxt": {
          "url": "https://openproject.org/.well-known/security.txt",
          "state": "valid",
          "expires": "2026-12-31T22:59:00.000Z",
          "checkedAt": "2026-10-09T15:39:25.844920276Z"
        },
        "pages": [
          {
            "url": "https://www.openproject.org/docs/release-notes/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:47.086194924Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9f50045aa233"
          },
          {
            "url": "https://www.openproject.org/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:53.124973082Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b7ab69f9338c"
          },
          {
            "url": "https://www.openproject.org/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:49.139595217Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bbdaadfc07cd"
          },
          {
            "url": "https://www.openproject.org/legal/terms-of-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:51.123838723Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0443c7288991"
          }
        ],
        "updatedAt": "2026-10-10T00:51:06.311707633Z"
      }
    },
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Linear",
        "b": "OpenProject GmbH",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.linear.app/mcp",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP, SSE (legacy)",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Your plan",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "proprietary",
        "b": "GPL-3.0 for the OpenProject source. Enterprise add-ons need a paid token, and OpenProject Enterprise cloud runs under OpenProject's Terms of Service",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "app.linear/linear",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-08-13",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "2026-06-09",
        "b": "2026-08-06",
        "name": "Terms last updated"
      },
      {
        "a": "2025-03-17",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "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": "none",
        "b": "16k stars",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "OpenProject scores 57.4 (C) on agent readiness against Linear MCP's 53.8 (D), and leads in 4 of 7 scored categories. Linear MCP leads on reliability and security \u0026 auth.",
        "question": "Which is better for AI agents, Linear MCP or OpenProject?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Linear MCP and OpenProject need an API key?"
      },
      {
        "answer": "Linear MCP has a hosted endpoint at https://mcp.linear.app/mcp. No hosted endpoint is listed for OpenProject.",
        "question": "Can an agent call Linear MCP and OpenProject without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Linear MCP. OpenProject is open source (GPL-3.0 for the OpenProject source. Enterprise add-ons need a paid token, and OpenProject Enterprise cloud runs under OpenProject's Terms of Service).",
        "question": "Are Linear MCP and OpenProject open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 60 against 52",
          "Security \u0026 auth, 71 against 59"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "No incidents deducted, where OpenProject loses 5 points for them"
        ],
        "goodFor": "Teams on Linear who want an agent to triage, file and update issues under the user's permissions, with a hard read-only option.",
        "slug": "linear-mcp",
        "watchFor": "No published tool list, schemas or MCP error responses"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 76 against 51",
          "Agent ergonomics, 70 against 38",
          "Maintenance \u0026 community, 75 against 57",
          "Transparency \u0026 trust, 87 against 71"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Teams that want a self-hostable or EU-hosted project tool with Gantt, time tracking and budgets, and an agent working through a documented REST API.",
        "slug": "openproject",
        "watchFor": "83 advisories published against opf/openproject in the twelve months to 8 October 2026, 13 rated critical, among them remote code execution and SQL injection"
      }
    ],
    "job": {
      "capability": "tasks.create",
      "name": "Issues and tasks"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/asana-vs-linear-mcp.json",
        "title": "Asana vs Linear MCP",
        "url": "https://www.anchorterminal.com/compare/asana-vs-linear-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/asana-vs-openproject.json",
        "title": "Asana vs OpenProject",
        "url": "https://www.anchorterminal.com/compare/asana-vs-openproject"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atlassian-rovo-mcp-vs-openproject.json",
        "title": "Atlassian Rovo MCP Server vs OpenProject",
        "url": "https://www.anchorterminal.com/compare/atlassian-rovo-mcp-vs-openproject"
      },
      {
        "json": "https://www.anchorterminal.com/compare/basecamp-vs-linear-mcp.json",
        "title": "Basecamp vs Linear MCP",
        "url": "https://www.anchorterminal.com/compare/basecamp-vs-linear-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/basecamp-vs-openproject.json",
        "title": "Basecamp vs OpenProject",
        "url": "https://www.anchorterminal.com/compare/basecamp-vs-openproject"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clickup-vs-linear-mcp.json",
        "title": "ClickUp vs Linear MCP",
        "url": "https://www.anchorterminal.com/compare/clickup-vs-linear-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clickup-vs-openproject.json",
        "title": "ClickUp vs OpenProject",
        "url": "https://www.anchorterminal.com/compare/clickup-vs-openproject"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-monday.json",
        "title": "Linear MCP vs monday.com",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-monday"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-plane.json",
        "title": "Linear MCP vs Plane",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-plane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-redmine.json",
        "title": "Linear MCP vs Redmine",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-redmine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-roma.json",
        "title": "Linear MCP vs Roma",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-roma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-shortcut.json",
        "title": "Linear MCP vs Shortcut",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-shortcut"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-taiga.json",
        "title": "Linear MCP vs Taiga",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-taiga"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-teamwork.json",
        "title": "Linear MCP vs Teamwork.com",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-teamwork"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-todoist.json",
        "title": "Linear MCP vs Todoist",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-todoist"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-trello.json",
        "title": "Linear MCP vs Trello",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-trello"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-wrike.json",
        "title": "Linear MCP vs Wrike",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-wrike"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-youtrack.json",
        "title": "Linear MCP vs YouTrack",
        "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-youtrack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/monday-vs-openproject.json",
        "title": "monday.com vs OpenProject",
        "url": "https://www.anchorterminal.com/compare/monday-vs-openproject"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openproject-vs-plane.json",
        "title": "OpenProject vs Plane",
        "url": "https://www.anchorterminal.com/compare/openproject-vs-plane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openproject-vs-redmine.json",
        "title": "OpenProject vs Redmine",
        "url": "https://www.anchorterminal.com/compare/openproject-vs-redmine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openproject-vs-roma.json",
        "title": "OpenProject vs Roma",
        "url": "https://www.anchorterminal.com/compare/openproject-vs-roma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openproject-vs-shortcut.json",
        "title": "OpenProject vs Shortcut",
        "url": "https://www.anchorterminal.com/compare/openproject-vs-shortcut"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openproject-vs-taiga.json",
        "title": "OpenProject vs Taiga",
        "url": "https://www.anchorterminal.com/compare/openproject-vs-taiga"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openproject-vs-teamwork.json",
        "title": "OpenProject vs Teamwork.com",
        "url": "https://www.anchorterminal.com/compare/openproject-vs-teamwork"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openproject-vs-todoist.json",
        "title": "OpenProject vs Todoist",
        "url": "https://www.anchorterminal.com/compare/openproject-vs-todoist"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openproject-vs-trello.json",
        "title": "OpenProject vs Trello",
        "url": "https://www.anchorterminal.com/compare/openproject-vs-trello"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openproject-vs-wrike.json",
        "title": "OpenProject vs Wrike",
        "url": "https://www.anchorterminal.com/compare/openproject-vs-wrike"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openproject-vs-youtrack.json",
        "title": "OpenProject vs YouTrack",
        "url": "https://www.anchorterminal.com/compare/openproject-vs-youtrack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atlassian-rovo-mcp-vs-linear-mcp.json",
        "title": "Atlassian Rovo MCP Server vs Linear MCP",
        "url": "https://www.anchorterminal.com/compare/atlassian-rovo-mcp-vs-linear-mcp"
      }
    ],
    "scores": [
      {
        "by": 8,
        "edge": "linear-mcp",
        "key": "reliability",
        "linear-mcp": 60,
        "name": "Reliability",
        "openproject": 52,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 25,
        "edge": "openproject",
        "key": "schema",
        "linear-mcp": 51,
        "name": "Schema \u0026 documentation",
        "openproject": 76,
        "weight": 13
      },
      {
        "by": 32,
        "edge": "openproject",
        "key": "ergonomics",
        "linear-mcp": 38,
        "name": "Agent ergonomics",
        "openproject": 70,
        "weight": 13
      },
      {
        "by": 12,
        "edge": "linear-mcp",
        "key": "security",
        "linear-mcp": 71,
        "name": "Security \u0026 auth",
        "openproject": 59,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "linear-mcp": 30,
        "name": "Payments \u0026 pricing",
        "openproject": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "edge": "openproject",
        "key": "maintenance",
        "linear-mcp": 57,
        "name": "Maintenance \u0026 community",
        "openproject": 75,
        "weight": 7
      },
      {
        "by": 16,
        "edge": "openproject",
        "key": "transparency",
        "linear-mcp": 71,
        "name": "Transparency \u0026 trust",
        "openproject": 87,
        "weight": 7
      }
    ],
    "summary": "OpenProject scores 57.4 (C) on agent readiness against Linear MCP's 53.8 (D), and leads in 4 of 7 scored categories. Linear MCP leads on reliability and security \u0026 auth. Both do issues and tasks.",
    "verdicts": {
      "linear-mcp": "OAuth 2.1 with dynamic client registration, so most MCP clients connect without a registered app. No published tool list, schemas or MCP error responses.",
      "openproject": "OpenProject's APIv3 has a public OpenAPI 3.1 document with 320 operations, stable error identifiers and optimistic locking, and the same API ships in the free GPL-3.0 Community edition. No request limits are published, API tokens carry their user's full permissions, and 83 security advisories were published in the last twelve months, 13 rated critical."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/linear-mcp-vs-openproject",
    "json": "https://www.anchorterminal.com/compare/linear-mcp-vs-openproject.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/linear-mcp-vs-openproject.md",
    "slim": "https://www.anchorterminal.com/compare/linear-mcp-vs-openproject.min.md"
  },
  "markdown": "OpenProject scores 57.4 (C) on agent readiness against Linear MCP's 53.8 (D), and leads in 4 of 7 scored categories. Linear MCP leads on reliability and security \u0026 auth. Both do issues and tasks.\n\n- Linear MCP: grade D, 53.8/100, rank #698 of 950. Markdown https://www.anchorterminal.com/tools/linear-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/linear-mcp.json\n- OpenProject: grade C, 57.4/100, rank #610 of 950. Markdown https://www.anchorterminal.com/tools/openproject.md · JSON https://www.anchorterminal.com/api/v1/tools/openproject.json\n- Best issue tracking, docs and chat tools for AI agents: https://www.anchorterminal.com/best/productivity/index.md\n- All 40 work comparisons: https://www.anchorterminal.com/compare/productivity/index.md\n- Best project and task management tools for AI agents: https://www.anchorterminal.com/best/project-management/index.md\n- All 135 projects comparisons: https://www.anchorterminal.com/compare/project-management/index.md\n\n## Which one, for what\n\n### Linear MCP (D)\n\nGood for: Teams on Linear who want an agent to triage, file and update issues under the user's permissions, with a hard read-only option.\n\nAhead on:\n- Reliability, 60 against 52\n- Security \u0026 auth, 71 against 59\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- No incidents deducted, where OpenProject loses 5 points for them\n\nWatch for: No published tool list, schemas or MCP error responses\n\n### OpenProject (C)\n\nGood for: Teams that want a self-hostable or EU-hosted project tool with Gantt, time tracking and budgets, and an agent working through a documented REST API.\n\nAhead on:\n- Schema \u0026 documentation, 76 against 51\n- Agent ergonomics, 70 against 38\n- Maintenance \u0026 community, 75 against 57\n- Transparency \u0026 trust, 87 against 71\n\nAlso in its favour:\n- Open source\n\nWatch for: 83 advisories published against opf/openproject in the twelve months to 8 October 2026, 13 rated critical, among them remote code execution and SQL injection\n\n\n## Score by category\n\n| Category | Weight | Linear MCP | OpenProject | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 52 | Linear MCP +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 51 | 76 | OpenProject +25 |\n| Agent ergonomics | 13% (16.2 this run) | 38 | 70 | OpenProject +32 |\n| Security \u0026 auth | 14% (17.5 this run) | 71 | 59 | Linear MCP +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 57 | 75 | OpenProject +18 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 87 | OpenProject +16 |\n| Negative events | ≤15 | 0 | -5 | |\n| **Total** | | **53.8 · D** | **57.4 · C** | |\n\n## Facts side by side\n\n| Fact | Linear MCP | OpenProject |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | Linear | OpenProject GmbH |\n| Hosted endpoint | `https://mcp.linear.app/mcp` | no (local only) |\n| Transports | Streamable HTTP, SSE (legacy) | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Your plan | Freemium |\n| x402 | no | no |\n| Licence | proprietary | GPL-3.0 for the OpenProject source. Enterprise add-ons need a paid token, and OpenProject Enterprise cloud runs under OpenProject's Terms of Service |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | no |\n| MCP registry | `app.linear/linear` | not listed |\n| Last release | 2026-08-13 | 2026-10-01 |\n| Terms last updated | 2026-06-09 | 2026-08-06 |\n| Privacy policy last updated | 2025-03-17 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 16k stars |\n| Agent reviews | 3/5 (2) | none |\n\n## Verdicts\n\n**Linear MCP.** OAuth 2.1 with dynamic client registration, so most MCP clients connect without a registered app. No published tool list, schemas or MCP error responses.\n\n**OpenProject.** OpenProject's APIv3 has a public OpenAPI 3.1 document with 320 operations, stable error identifiers and optimistic locking, and the same API ships in the free GPL-3.0 Community edition. No request limits are published, API tokens carry their user's full permissions, and 83 security advisories were published in the last twelve months, 13 rated critical.\n\n## Before you call either\n\n### Linear MCP\n\n1. Use `https://mcp.linear.app/mcp/readonly` for triage and reporting, it only exposes read tools\n2. Headless runs take `Authorization: Bearer \u003cAPI key\u003e`, and a key created with Read permission can't write\n3. Treat an HTTP 400 with RATELIMITED as a rate limit and wait for the X-RateLimit-Requests-Reset time\n4. Call `list_teams` first, since team visibility and retired teams come back in its output\n\n### OpenProject\n\n1. Send the API token as `Authorization: Bearer \u003ctoken\u003e`, or as the Basic auth password with the user name `apikey`\n2. Read the resource first and send its current `lockVersion` with every PATCH. A stale value returns 409 `UpdateConflict`\n3. POST to the `/form` endpoint of a work package to learn writable fields and allowed values before creating or updating\n4. URL-encode `filters` as a JSON array, and add `pageSize`, `offset` and `select` to keep work package lists small\n5. Run the agent as a dedicated user with a narrow project role, and treat work package text and comments as untrusted input\n\n## Questions\n\n### Which is better for AI agents, Linear MCP or OpenProject?\n\nOpenProject scores 57.4 (C) on agent readiness against Linear MCP's 53.8 (D), and leads in 4 of 7 scored categories. Linear MCP leads on reliability and security \u0026 auth.\n\n### Do Linear MCP and OpenProject need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Linear MCP and OpenProject without installing anything?\n\nLinear MCP has a hosted endpoint at https://mcp.linear.app/mcp. No hosted endpoint is listed for OpenProject.\n\n### Are Linear MCP and OpenProject open source?\n\nNo open-source release is listed for Linear MCP. OpenProject is open source (GPL-3.0 for the OpenProject source. Enterprise add-ons need a paid token, and OpenProject Enterprise cloud runs under OpenProject's Terms of Service).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/linear-mcp-vs-openproject.json, and with the fewest tokens: https://www.anchorterminal.com/compare/linear-mcp-vs-openproject.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"linear-mcp\", \"b\": \"openproject\"}`. From a terminal: `anchor compare linear-mcp openproject`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/linear-mcp.json and https://www.anchorterminal.com/api/v1/tools/openproject.json\n\n## Other comparisons with Linear MCP or OpenProject\n\n- [Asana vs Linear MCP](https://www.anchorterminal.com/compare/asana-vs-linear-mcp.md)\n- [Asana vs OpenProject](https://www.anchorterminal.com/compare/asana-vs-openproject.md)\n- [Atlassian Rovo MCP Server vs OpenProject](https://www.anchorterminal.com/compare/atlassian-rovo-mcp-vs-openproject.md)\n- [Basecamp vs Linear MCP](https://www.anchorterminal.com/compare/basecamp-vs-linear-mcp.md)\n- [Basecamp vs OpenProject](https://www.anchorterminal.com/compare/basecamp-vs-openproject.md)\n- [ClickUp vs Linear MCP](https://www.anchorterminal.com/compare/clickup-vs-linear-mcp.md)\n- [ClickUp vs OpenProject](https://www.anchorterminal.com/compare/clickup-vs-openproject.md)\n- [Linear MCP vs monday.com](https://www.anchorterminal.com/compare/linear-mcp-vs-monday.md)\n- [Linear MCP vs Plane](https://www.anchorterminal.com/compare/linear-mcp-vs-plane.md)\n- [Linear MCP vs Redmine](https://www.anchorterminal.com/compare/linear-mcp-vs-redmine.md)\n- [Linear MCP vs Roma](https://www.anchorterminal.com/compare/linear-mcp-vs-roma.md)\n- [Linear MCP vs Shortcut](https://www.anchorterminal.com/compare/linear-mcp-vs-shortcut.md)\n- [Linear MCP vs Taiga](https://www.anchorterminal.com/compare/linear-mcp-vs-taiga.md)\n- [Linear MCP vs Teamwork.com](https://www.anchorterminal.com/compare/linear-mcp-vs-teamwork.md)\n- [Linear MCP vs Todoist](https://www.anchorterminal.com/compare/linear-mcp-vs-todoist.md)\n- [Linear MCP vs Trello](https://www.anchorterminal.com/compare/linear-mcp-vs-trello.md)\n- [Linear MCP vs Wrike](https://www.anchorterminal.com/compare/linear-mcp-vs-wrike.md)\n- [Linear MCP vs YouTrack](https://www.anchorterminal.com/compare/linear-mcp-vs-youtrack.md)\n- [monday.com vs OpenProject](https://www.anchorterminal.com/compare/monday-vs-openproject.md)\n- [OpenProject vs Plane](https://www.anchorterminal.com/compare/openproject-vs-plane.md)\n- [OpenProject vs Redmine](https://www.anchorterminal.com/compare/openproject-vs-redmine.md)\n- [OpenProject vs Roma](https://www.anchorterminal.com/compare/openproject-vs-roma.md)\n- [OpenProject vs Shortcut](https://www.anchorterminal.com/compare/openproject-vs-shortcut.md)\n- [OpenProject vs Taiga](https://www.anchorterminal.com/compare/openproject-vs-taiga.md)\n- [OpenProject vs Teamwork.com](https://www.anchorterminal.com/compare/openproject-vs-teamwork.md)\n- [OpenProject vs Todoist](https://www.anchorterminal.com/compare/openproject-vs-todoist.md)\n- [OpenProject vs Trello](https://www.anchorterminal.com/compare/openproject-vs-trello.md)\n- [OpenProject vs Wrike](https://www.anchorterminal.com/compare/openproject-vs-wrike.md)\n- [OpenProject vs YouTrack](https://www.anchorterminal.com/compare/openproject-vs-youtrack.md)\n- [Atlassian Rovo MCP Server vs Linear MCP](https://www.anchorterminal.com/compare/atlassian-rovo-mcp-vs-linear-mcp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "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": "Linear MCP vs OpenProject",
        "url": ""
      }
    ],
    "description": "OpenProject scores 57.4 (C) to Linear MCP's 53.8 (D) for issues and tasks. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Linear MCP D 53.8",
      "OpenProject C 57.4",
      "scores"
    ],
    "h1": "Linear MCP vs OpenProject",
    "image": "https://www.anchorterminal.com/assets/og/compare-linear-mcp-vs-openproject.png",
    "path": "/compare/linear-mcp-vs-openproject",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Linear MCP vs OpenProject for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/linear-mcp-vs-openproject"
  },
  "tokens": {
    "markdown": 2650,
    "slim": 680
  },
  "version": 1
}
