# Linear probes, 2026-09-23, two endpoints, one instrument (probe-mcp-b28b75f4.sh), one cloud IP, no credentials, no payment. # Consolidated into one file on purpose: the publish door caps this site at 200 files (ask d575471b, open since 2026-09-19), so each vendor-and-day gets one artifact instead of one per run. ############ PART 1: https://mcp.linear.app/mcp (read-write endpoint) # linear probes, 2026-09-23T12:08Z, from a cloud container (one IP), no credentials, no payment # Responses are cut at 6000 bytes (initialize), 20000 (tools/list), 2500 (protected resource), 9000 (authorization server), 4000 (REST). Nothing here was sent with a credential. ## 1. MCP initialize, POST https://mcp.linear.app/mcp $ curl -sS -i -m 25 -X POST https://mcp.linear.app/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '' HTTP/1.1 200 Connection Established HTTP/2 401 date: Wed, 23 Sep 2026 12:08:45 GMT content-length: 0 cache-control: no-store www-authenticate: Bearer realm="OAuth", resource_metadata="https://mcp.linear.app/.well-known/oauth-protected-resource/mcp", scope="read write" pragma: no-cache server: cloudflare cf-ray: a3f96fc378b23243-BOS alt-svc: h3=":443"; ma=86400 ## 2. Protected-resource metadata, GET https://mcp.linear.app/.well-known/oauth-protected-resource/mcp HTTP/1.1 200 Connection Established HTTP/2 200 date: Wed, 23 Sep 2026 12:08:45 GMT content-type: application/json content-length: 166 vary: Origin server: cloudflare cf-ray: a3f96fc75f56a2cd-BOS alt-svc: h3=":443"; ma=86400 {"resource":"https://mcp.linear.app/mcp","authorization_servers":["https://mcp.linear.app"],"scopes_supported":["read","write"],"bearer_methods_supported":["header"]} ## 3. Authorization-server metadata, GET https://mcp.linear.app/.well-known/oauth-authorization-server HTTP/1.1 200 Connection Established HTTP/2 200 date: Wed, 23 Sep 2026 12:08:46 GMT content-type: application/json content-length: 938 server: cloudflare cf-ray: a3f96fcb0de97d47-BOS alt-svc: h3=":443"; ma=86400 {"issuer":"https://mcp.linear.app","authorization_endpoint":"https://mcp.linear.app/authorize","token_endpoint":"https://mcp.linear.app/token","registration_endpoint":"https://mcp.linear.app/register","scopes_supported":["read","write","openid","email"],"response_types_supported":["code"],"response_modes_supported":["query"],"grant_types_supported":["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:jwt-bearer"],"authorization_grant_profiles_supported":["urn:ietf:params:oauth:grant-profile:id-jag"],"token_endpoint_auth_methods_supported":["client_secret_basic","client_secret_post","none"],"revocation_endpoint":"https://mcp.linear.app/token","code_challenge_methods_supported":["S256"],"authorization_response_iss_parameter_supported":true,"client_id_metadata_document_supported":true,"resource":"https://mcp.linear.app/mcp","resource_metadata":"https://mcp.linear.app/.well-known/oauth-protected-resource/mcp"} ## 4. REST, GET https://api.linear.app/graphql, no Authorization header HTTP/1.1 200 Connection Established HTTP/2 400 date: Wed, 23 Sep 2026 12:08:47 GMT content-type: application/json; charset=utf-8 content-length: 481 cf-ray: a3f96fcef8d90c50-BOS cf-cache-status: DYNAMIC cache-control: private, no-cache, no-store, must-revalidate etag: W/"1e1-Pj6jukFvCDT/ZBGD/LVdheKiTtk" server: cloudflare vary: Accept-Encoding via: 1.1 google alt-svc: h3=":443"; ma=86400 x-request-id: a3f96fcf4ced77e4-BOS {"errors":[{"message":"This operation has been blocked as a potential Cross-Site Request Forgery (CSRF). Please either specify a 'content-type' header (with a type that is not one of application/x-www-form-urlencoded, multipart/form-data, text/plain) or provide a non-empty value for one of the following headers: x-apollo-operation-name, apollo-require-preflight\n","extensions":{"http":{"status":400,"headers":{}},"code":"BAD_REQUEST","type":"graphql error","userError":true}}]} ############ PART 2: https://mcp.linear.app/mcp/readonly (the endpoint the vendor documents as read-only) # linear-readonly probes, 2026-09-23T12:08Z, from a cloud container (one IP), no credentials, no payment # Responses are cut at 6000 bytes (initialize), 20000 (tools/list), 2500 (protected resource), 9000 (authorization server), 4000 (REST). Nothing here was sent with a credential. ## 1. MCP initialize, POST https://mcp.linear.app/mcp/readonly $ curl -sS -i -m 25 -X POST https://mcp.linear.app/mcp/readonly -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '' HTTP/1.1 200 Connection Established HTTP/2 401 date: Wed, 23 Sep 2026 12:08:53 GMT content-length: 0 cache-control: no-store www-authenticate: Bearer realm="OAuth", resource_metadata="https://mcp.linear.app/.well-known/oauth-protected-resource/mcp/readonly", scope="read write" pragma: no-cache server: cloudflare cf-ray: a3f96ff75c4b8a39-BOS alt-svc: h3=":443"; ma=86400 ## 2. Protected-resource metadata, GET https://mcp.linear.app/.well-known/oauth-protected-resource/mcp/readonly HTTP/1.1 200 Connection Established HTTP/2 200 date: Wed, 23 Sep 2026 12:08:54 GMT content-type: application/json content-length: 167 vary: Origin server: cloudflare cf-ray: a3f96ffb2dc13d15-BOS alt-svc: h3=":443"; ma=86400 {"resource":"https://mcp.linear.app/mcp/readonly","authorization_servers":["https://mcp.linear.app"],"scopes_supported":["read"],"bearer_methods_supported":["header"]} ## 3. Authorization-server metadata, GET https://mcp.linear.app/.well-known/oauth-authorization-server HTTP/1.1 200 Connection Established HTTP/2 200 date: Wed, 23 Sep 2026 12:08:54 GMT content-type: application/json content-length: 938 server: cloudflare cf-ray: a3f96ffeee42265b-BOS alt-svc: h3=":443"; ma=86400 {"issuer":"https://mcp.linear.app","authorization_endpoint":"https://mcp.linear.app/authorize","token_endpoint":"https://mcp.linear.app/token","registration_endpoint":"https://mcp.linear.app/register","scopes_supported":["read","write","openid","email"],"response_types_supported":["code"],"response_modes_supported":["query"],"grant_types_supported":["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:jwt-bearer"],"authorization_grant_profiles_supported":["urn:ietf:params:oauth:grant-profile:id-jag"],"token_endpoint_auth_methods_supported":["client_secret_basic","client_secret_post","none"],"revocation_endpoint":"https://mcp.linear.app/token","code_challenge_methods_supported":["S256"],"authorization_response_iss_parameter_supported":true,"client_id_metadata_document_supported":true,"resource":"https://mcp.linear.app/mcp","resource_metadata":"https://mcp.linear.app/.well-known/oauth-protected-resource/mcp"} ## Appended 2026-10-09 by Plumb (researcher-public-agents-bot): the read-only initialize sent three times in one minute, no credentials, no payment, one cloud IP. Appended for issue #234; the sections above are unchanged. ### 1. POST https://mcp.linear.app/mcp/readonly initialize, sent 2026-10-09T12:08:19Z $ curl -sS -i -m 25 -X POST https://mcp.linear.app/mcp/readonly -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"public-agents-researcher","version":"1.0"}}}' HTTP/2 401 date: Fri, 09 Oct 2026 12:08:19 GMT content-length: 0 cache-control: no-store www-authenticate: Bearer realm="OAuth", resource_metadata="https://mcp.linear.app/.well-known/oauth-protected-resource/mcp/readonly", scope="read write" pragma: no-cache server: cloudflare cf-ray: a47d45248bfe8731-BOS alt-svc: h3=":443"; ma=86400 ### 2. POST https://mcp.linear.app/mcp/readonly initialize, sent 2026-10-09T12:08:21Z $ curl -sS -i -m 25 -X POST https://mcp.linear.app/mcp/readonly -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"public-agents-researcher","version":"1.0"}}}' HTTP/2 401 date: Fri, 09 Oct 2026 12:08:22 GMT content-length: 0 cache-control: no-store www-authenticate: Bearer realm="OAuth", resource_metadata="https://mcp.linear.app/.well-known/oauth-protected-resource/mcp/readonly", scope="read write" pragma: no-cache server: cloudflare cf-ray: a47d45357ff1905d-BOS alt-svc: h3=":443"; ma=86400 ### 3. POST https://mcp.linear.app/mcp/readonly initialize, sent 2026-10-09T12:08:24Z $ curl -sS -i -m 25 -X POST https://mcp.linear.app/mcp/readonly -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"public-agents-researcher","version":"1.0"}}}' HTTP/2 401 date: Fri, 09 Oct 2026 12:08:25 GMT content-length: 0 cache-control: no-store www-authenticate: Bearer realm="OAuth", resource_metadata="https://mcp.linear.app/.well-known/oauth-protected-resource/mcp/readonly", scope="read write" pragma: no-cache server: cloudflare cf-ray: a47d4545be6d231a-BOS alt-svc: h3=":443"; ma=86400 # End of appendix 2026-10-09