{
  "slug": "github-mcp-server-adds-experimental-issue-artifact-tools-d878dc10c531",
  "title": "github-mcp-server adds experimental issue artifact tools",
  "tools": [
    "github-mcp-server"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-11-03T11:11:41.000Z",
  "announced_at": "2026-11-03T11:11:41.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When managing artifacts attached to a GitHub issue, enable the `issue_artifacts` feature. Then call `issue_artifact_read` to list or get artifacts, or `issue_artifact_write` to create, update, or delete them.",
    "examples": [
      "--features=issue_artifacts",
      "GITHUB_FEATURES=issue_artifacts",
      "issue_artifact_read({\"method\":\"list\",\"owner\":\"<owner>\",\"repo\":\"<repo>\",\"issue_number\":<issue_number>,\"page\":1,\"perPage\":30})"
    ],
    "gotchas": [
      "Version: v2.1.0",
      "Availability: Experimental; the `issue_artifacts` flag is off by default, including in Insiders mode.",
      "method (required): Read: list or get; write: create, update, or delete.",
      "owner, repo, issue_number (required): Target repository and issue.",
      "artifact_number (required): Required for get, update, delete; issue-scoped positive artifact number.",
      "type: Create artifact type or list filter; supported types: generic, link, plan, embedded_html.",
      "name, body (required): Create requires both; update requires name, body, or both. Empty body clears it.",
      "page, perPage: List pagination; defaults 1 and 30; perPage range 1–100.",
      "Prerequisite: Requires an authenticated GitHub client; the feature flag only exposes the tools and does not grant API access.",
      "Prerequisite: GitHub API access depends on token permissions and repository access; tools declare the `repo` OAuth challenge scope.",
      "The MCP flag exposes tools but does not grant API access; API access depends on the configured authenticated GitHub client, token permissions, and repository access.",
      "Read-only mode exposes only `issue_artifact_read`.",
      "Artifact numbers are scoped to their owning issue, not global IDs.",
      "Updates preserve omitted fields, allow `body: \"\"` to clear the body, and cannot change type.",
      "Lists return one explicit `page`/`perPage` with bodies; request successive pages until fewer than `perPage` artifacts are returned. The tools do not expose REST `Link` headers.",
      "Both tools fail closed in lockdown mode because the reference artifact response does not identify authors for content-trust checks.",
      "Create and list's optional type filter supports `generic`, `link`, `plan`, and `embedded_html`; for `embedded_html`, supply HTML source in `body`. Returned artifact types remain unrestricted for forward compatibility.",
      "Create requires `type`, `name`, and `body`; an empty body is allowed. Update requires `name`, `body`, or both. Method-specific fields are rejected when used with another method.",
      "API failures are returned explicitly; writes are not retried."
    ]
  },
  "why_it_matters": "When managing plans, instructions, or references attached to a GitHub issue, enable the `issue_artifacts` feature and use the issue artifact methods.",
  "sources": [
    "https://github.com/github/github-mcp-server/releases/tag/v2.1.0",
    "https://github.com/github/github-mcp-server/pull/3554",
    "https://github.com/github/github-mcp-server/blob/v2.1.0/docs/feature-flags.md"
  ],
  "rank": 0.96028,
  "review_state": "approved",
  "provenance": {
    "run_id": "daily-20261103-13",
    "verdict_id": "daily-20261103-13:daily-20261103-13-16396c73c732219e-1:gate",
    "evidence_hash": "3a8b635821f1cbe55668b6393cdf60f9120a9ee27873602f09550984d9c3d966"
  }
}
