Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: microsoft/azure-devops-mcp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.2.1
Choose a base ref
...
head repository: microsoft/azure-devops-mcp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.3.0
Choose a head ref
  • 17 commits
  • 24 files changed
  • 12 contributors

Commits on Jul 24, 2025

  1. feat: implement tool name and parameter validation system with eslint…

    … integration (#337)
    
    # Fix Claude API Errors with Tool Name Validation
    
    This PR fixes a problem where the Azure DevOps MCP server was getting
    error messages from Claude API because some tool names didn't follow the
    required format. Claude API is very strict about tool names, they can
    only contain letters, numbers, underscores, dots, and dashes, and must
    be 64 characters or less. When tool names don't follow these rules,
    Claude returns a 400 error and refuses to work.
    
    To solve this, we added validation that checks all tool names before
    they get sent to Claude. The validation happens in three places: when
    you're writing code (through ESLint), when you build the project, and
    when tests run. We tested all 60+ existing tools in the project and they
    all pass the validation. The longest tool name is only 40 characters, so
    we're well within the limits.
    
    The validation code is organized so there's no duplication, one shared
    module handles all the checking logic. We also added comprehensive tests
    to make sure the validation works correctly, and wrote documentation to
    help developers understand the naming rules. This prevents future API
    errors and makes the development process smoother since developers get
    immediate feedback when they use invalid tool names.
    
    Example linter error while developing;
    
    <img width="1075" height="121" alt="image"
    src="https://github.com/%3Ca%20href="https://github.com/user-attachments/assets/04320b1a-a833-45d8-870e-90ad8a05645d">https://github.com/user-attachments/assets/04320b1a-a833-45d8-870e-90ad8a05645d"
    />
    
    Output of validation for current tools;
    
    <img width="667" height="1331" alt="image"
    src="https://github.com/%3Ca%20href="https://github.com/user-attachments/assets/5d903b57-efa1-4ecc-ac46-b9fb7dbfcc45">https://github.com/user-attachments/assets/5d903b57-efa1-4ecc-ac46-b9fb7dbfcc45"
    />
    
    ## GitHub issue number
    
    Fixes #332 
    
    ## **Associated Risks**
    
    None
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
    Run `npm run validate-tools` command
    polatengin authored Jul 24, 2025
    Configuration menu
    Copy the full SHA
    08d2851 View commit details
    Browse the repository at this point in the history
  2. Updating docs and re-organizing content (#335)

    Adding new GETTINGSTARTED.MD and EXAMPLES.MD and then reorganizing
    content around that.
    
    ## GitHub issue number
    N/A
    
    ## **Associated Risks**
    
    None
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
    Manual review
    danhellem authored Jul 24, 2025
    Configuration menu
    Copy the full SHA
    f54fa9b View commit details
    Browse the repository at this point in the history
  3. Adding new param to link PR to work items to account for cross projec…

    …t linking (#333)
    
    This pull request introduces support for linking pull requests across
    different projects by adding an optional `pullRequestProjectId`
    parameter. It includes updates to both the implementation and
    corresponding tests to handle this new functionality.
    
    ### Feature Enhancements:
    
    * **Cross-Project Linking Support**:
    - Added an optional `pullRequestProjectId` parameter in the
    `configureWorkItemTools` function to allow linking pull requests from a
    different project. If not provided, it defaults to the `projectId` for
    same-project linking. (`src/tools/workitems.ts`,
    [src/tools/workitems.tsR367-R377](diffhunk://#diff-86312c74c8d340f1b252bb6a34ae3d610c400cf9151d45223ec54d2d2ab2b0c9R367-R377))
    
    ### Test Updates:
    
    * **New Test Cases for Cross-Project Linking**:
    - Added a test to verify that `pullRequestProjectId` is used instead of
    `projectId` when provided. (`test/src/tools/workitems.test.ts`,
    [test/src/tools/workitems.test.tsR565-R642](diffhunk://#diff-81b8c1c7196cc4eba4c6b2a30eaec7c3101f72c5a88803d07b942b71e3404b9dR565-R642))
    - Added a test to ensure fallback to `projectId` when
    `pullRequestProjectId` is empty. (`test/src/tools/workitems.test.ts`,
    [test/src/tools/workitems.test.tsR565-R642](diffhunk://#diff-81b8c1c7196cc4eba4c6b2a30eaec7c3101f72c5a88803d07b942b71e3404b9dR565-R642))
    
    * **Parameter Updates in Existing Tests**:
    - Updated existing test cases to include the `pullRequestProjectId`
    parameter where relevant. (`test/src/tools/workitems.test.ts`,
    [[1]](diffhunk://#diff-81b8c1c7196cc4eba4c6b2a30eaec7c3101f72c5a88803d07b942b71e3404b9dR658)
    [[2]](diffhunk://#diff-81b8c1c7196cc4eba4c6b2a30eaec7c3101f72c5a88803d07b942b71e3404b9dL1238-R1321)
    [[3]](diffhunk://#diff-81b8c1c7196cc4eba4c6b2a30eaec7c3101f72c5a88803d07b942b71e3404b9dL1260-R1344)
    
    ## GitHub issue number #330 
    
    ## **Associated Risks**
    
    None
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [ ] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
    Updated tests and tested manually
    danhellem authored Jul 24, 2025
    Configuration menu
    Copy the full SHA
    382f4d0 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2025

  1. Added includeWorkItemRefs param to the `repo_get_pull_request_by_id…

    …` tool (#351)
    
    Added the `includeWorkItemRefs` param to include work items references
    linked to the PR.
    
    how it looks in output json:
    
    ```json
      "workItemRefs": [
        {
          "id": "1",
          "url": "https://dev.azure.com/localconst-org/_apis/wit/workItems/1"
        },
        {
          "id": "2",
          "url": "https://dev.azure.com/localconst-org/_apis/wit/workItems/2"
         }
      ],
    ```
    
    ## GitHub issue number
    
    #274 
    
    ## **Associated Risks**
    
    Not actually a risk, but a note that to get full info about WIs agent
    will need to use another tools.
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
    Tested on: GH Copilot in VSCode with gpt-4.1
    
    1. Built server with changes
    2. Configured it for VSCode
    3. Created several test work items
    4. Created test PR
    5. Linked WIs to PR
    6. Made call:  "get all PR's attached work items: <PR url>"
    7. Observed tool call. Verified params included new
    `includeWorkItemRefs`
    8. Observed tool call result. Verified work items are included in output
    json
    9. Verified GH copilot understand how to use WI refs in future calls,
    specifically in `wit_get_work_item`
    localconst authored Jul 28, 2025
    Configuration menu
    Copy the full SHA
    cff4f5f View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2025

  1. Add stackrank to fields list for batch fetch by id (#350)

    Added stack rank to list of returned fields so that it can be used to
    re-order a backlog easier
    
    ## GitHub issue number #349 
    
    ## **Associated Risks**
    
    None
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
    Manual validation and re-ran tests
    danhellem authored Jul 29, 2025
    Configuration menu
    Copy the full SHA
    ca33862 View commit details
    Browse the repository at this point in the history
  2. [dependencies]: Bump typescript-eslint from 8.37.0 to 8.38.0 (#325)

    Bumps
    [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)
    from 8.37.0 to 8.38.0.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/%3Ca%20href="https://github.com/typescript-eslint/typescript-eslint/releases">typescript-eslint's">https://github.com/typescript-eslint/typescript-eslint/releases">typescript-eslint's
    releases</a>.</em></p>
    <blockquote>
    <h2>v8.38.0</h2>
    <h2>8.38.0 (2025-07-21)</h2>
    <h3>🚀 Features</h3>
    <ul>
    <li><strong>typescript-estree:</strong> forbid optional chain in
    <code>TemplateTaggedLiteral</code> (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11391">#11391</a>)</li">https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11391">#11391</a>)</li>
    </ul>
    <h3>🩹 Fixes</h3>
    <ul>
    <li>disallow extra properties in rule options (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11397">#11397</a>)</li">https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11397">#11397</a>)</li>
    <li><strong>eslint-plugin:</strong> [consistent-generic-constructors]
    resolve conflict with <code>isolatedDeclarations</code> if enabled in
    <code>constructor</code> option (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11351">#11351</a>)</li">https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11351">#11351</a>)</li>
    <li><strong>typescript-eslint:</strong> infer tsconfigRootDir with v8
    API (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11412">#11412</a>)</li">https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11412">#11412</a>)</li>
    <li><strong>typescript-eslint:</strong> error on nested
    <code>extends</code> in <code>tseslint.config()</code> (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11361">#11361</a>)</li">https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11361">#11361</a>)</li>
    <li><strong>typescript-estree:</strong> ensure the token type of the
    property name is Identifier (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11329">#11329</a>)</li">https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11329">#11329</a>)</li>
    </ul>
    <h3>❤️ Thank You</h3>
    <ul>
    <li>Andrew Kazakov <a
    href="https://github.com/%3Ca%20href="https://github.com/andreww2012"><code>@%E2%80%8Bandreww2012</code></a></li">https://github.com/andreww2012"><code>@​andreww2012</code></a></li>
    <li>Kirk Waiblinger <a
    href="https://github.com/%3Ca%20href="https://github.com/kirkwaiblinger"><code>@%E2%80%8Bkirkwaiblinger</code></a></li">https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
    <li>MK <a
    href="https://github.com/%3Ca%20href="https://github.com/asdf93074"><code>@%E2%80%8Basdf93074</code></a></li">https://github.com/asdf93074"><code>@​asdf93074</code></a></li>
    <li>tao</li>
    <li>Younsang Na <a
    href="https://github.com/%3Ca%20href="https://github.com/nayounsang"><code>@%E2%80%8Bnayounsang</code></a></li">https://github.com/nayounsang"><code>@​nayounsang</code></a></li>
    </ul>
    <p>You can read about our <a
    href="https://github.com/%3Ca%20href="https://main--typescript-eslint.netlify.app/users/versioning">versioning" rel="nofollow">https://main--typescript-eslint.netlify.app/users/versioning">versioning
    strategy</a> and <a
    href="https://github.com/%3Ca%20href="https://main--typescript-eslint.netlify.app/users/releases">releases</a" rel="nofollow">https://main--typescript-eslint.netlify.app/users/releases">releases</a>
    on our website.</p>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/%3Ca%20href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md">typescript-eslint's">https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md">typescript-eslint's
    changelog</a>.</em></p>
    <blockquote>
    <h2>8.38.0 (2025-07-21)</h2>
    <h3>🩹 Fixes</h3>
    <ul>
    <li><strong>typescript-eslint:</strong> error on nested
    <code>extends</code> in <code>tseslint.config()</code> (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11361">#11361</a>)</li">https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11361">#11361</a>)</li>
    <li><strong>typescript-eslint:</strong> infer tsconfigRootDir with v8
    API (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11412">#11412</a>)</li">https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11412">#11412</a>)</li>
    </ul>
    <h3>❤️ Thank You</h3>
    <ul>
    <li>Kirk Waiblinger <a
    href="https://github.com/%3Ca%20href="https://github.com/kirkwaiblinger"><code>@%E2%80%8Bkirkwaiblinger</code></a></li">https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
    </ul>
    <p>You can read about our <a
    href="https://github.com/%3Ca%20href="https://main--typescript-eslint.netlify.app/users/versioning">versioning" rel="nofollow">https://main--typescript-eslint.netlify.app/users/versioning">versioning
    strategy</a> and <a
    href="https://github.com/%3Ca%20href="https://main--typescript-eslint.netlify.app/users/releases">releases</a" rel="nofollow">https://main--typescript-eslint.netlify.app/users/releases">releases</a>
    on our website.</p>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/typescript-eslint/typescript-eslint/commit/d11e79e9c9edc9f6f5e66306e3b3d65f3149a760"><code>d11e79e</code></a">https://github.com/typescript-eslint/typescript-eslint/commit/d11e79e9c9edc9f6f5e66306e3b3d65f3149a760"><code>d11e79e</code></a>
    chore(release): publish 8.38.0</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/typescript-eslint/typescript-eslint/commit/6d8fae941019f0381e99d6e0df01626f1c17b749"><code>6d8fae9</code></a">https://github.com/typescript-eslint/typescript-eslint/commit/6d8fae941019f0381e99d6e0df01626f1c17b749"><code>6d8fae9</code></a>
    fix(typescript-eslint): error on nested <code>extends</code> in
    <code>tseslint.config()</code> (<a
    href="https://github.com/%3Ca%20href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/11">#11</a>...</li">https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/11">#11</a>...</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/typescript-eslint/typescript-eslint/commit/abb7c4de8cae95da11791610171108840141f4f2"><code>abb7c4d</code></a">https://github.com/typescript-eslint/typescript-eslint/commit/abb7c4de8cae95da11791610171108840141f4f2"><code>abb7c4d</code></a>
    fix(typescript-eslint): infer tsconfigRootDir with v8 API (<a
    href="https://github.com/%3Ca%20href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/11412">#11412</a>)</li">https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/11412">#11412</a>)</li>
    <li>See full diff in <a
    href="https://github.com/%3Ca%20href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.38.0/packages/typescript-eslint">compare">https://github.com/typescript-eslint/typescript-eslint/commits/v8.38.0/packages/typescript-eslint">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typescript-eslint&package-manager=npm_and_yarn&previous-version=8.37.0&new-version=8.38.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    
    
    </details>
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Dan Hellem <[email protected]>
    dependabot[bot] and danhellem authored Jul 29, 2025
    Configuration menu
    Copy the full SHA
    d7432b9 View commit details
    Browse the repository at this point in the history
  3. feat: add support for fork source repository in pull request creation…

    … (Issue 254) (#356)
    
    This pull request enhances the `create_pull_request` tool in
    `src/tools/repos.ts` to support creating pull requests from forked
    repositories. The changes include adding a new parameter for specifying
    the fork repository ID and updating the logic to handle this parameter
    when creating pull requests.
    
    ## GitHub issue number
    Fixes #254 
    
    ## **Associated Risks**
    none
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
    Tested manually - managed to create a PR from a forked repo into the
    original one.
    nikolapeja6 authored Jul 29, 2025
    Configuration menu
    Copy the full SHA
    f42ab17 View commit details
    Browse the repository at this point in the history
  4. [dependencies]: Bump @modelcontextprotocol/sdk from 1.16.0 to 1.17.0 (#…

    …360)
    
    Bumps
    [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk)
    from 1.16.0 to 1.17.0.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/releases"><code>@%E2%80%8Bmodelcontextprotocol/sdk</code>'s">https://github.com/modelcontextprotocol/typescript-sdk/releases"><code>@​modelcontextprotocol/sdk</code>'s
    releases</a>.</em></p>
    <blockquote>
    <h2>1.17.0</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Add CODEOWNERS file for sdk by <a
    href="https://github.com/%3Ca%20href="https://github.com/ihrpr"><code>@%E2%80%8Bihrpr</code></a">https://github.com/ihrpr"><code>@​ihrpr</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/781">modelcontextprotocol/typescript-sdk#781</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/781">modelcontextprotocol/typescript-sdk#781</a></li>
    <li>Add more robust base64 check by <a
    href="https://github.com/%3Ca%20href="https://github.com/cliffhall"><code>@%E2%80%8Bcliffhall</code></a">https://github.com/cliffhall"><code>@​cliffhall</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/786">modelcontextprotocol/typescript-sdk#786</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/786">modelcontextprotocol/typescript-sdk#786</a></li>
    <li>update codeowners by <a
    href="https://github.com/%3Ca%20href="https://github.com/ihrpr"><code>@%E2%80%8Bihrpr</code></a">https://github.com/ihrpr"><code>@​ihrpr</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/803">modelcontextprotocol/typescript-sdk#803</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/803">modelcontextprotocol/typescript-sdk#803</a></li>
    <li>Fix indent by <a
    href="https://github.com/%3Ca%20href="https://github.com/jiec-msft"><code>@%E2%80%8Bjiec-msft</code></a">https://github.com/jiec-msft"><code>@​jiec-msft</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/807">modelcontextprotocol/typescript-sdk#807</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/807">modelcontextprotocol/typescript-sdk#807</a></li>
    <li>fix: Explicitly declare accpet type to json when exchanging oauth
    token by <a
    href="https://github.com/%3Ca%20href="https://github.com/JoJoJoJoJoJoJo"><code>@%E2%80%8BJoJoJoJoJoJoJo</code></a">https://github.com/JoJoJoJoJoJoJo"><code>@​JoJoJoJoJoJoJo</code></a>
    in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/801">modelcontextprotocol/typescript-sdk#801</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/801">modelcontextprotocol/typescript-sdk#801</a></li>
    <li>feat: support oidc discovery in client sdk by <a
    href="https://github.com/%3Ca%20href="https://github.com/xiaoyijun"><code>@%E2%80%8Bxiaoyijun</code></a">https://github.com/xiaoyijun"><code>@​xiaoyijun</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/652">modelcontextprotocol/typescript-sdk#652</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/652">modelcontextprotocol/typescript-sdk#652</a></li>
    <li>fix: remove extraneous code block in README.md by <a
    href="https://github.com/%3Ca%20href="https://github.com/sd0ric4"><code>@%E2%80%8Bsd0ric4</code></a">https://github.com/sd0ric4"><code>@​sd0ric4</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/791">modelcontextprotocol/typescript-sdk#791</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/791">modelcontextprotocol/typescript-sdk#791</a></li>
    <li>Bump form-data from 4.0.2 to 4.0.4 in the npm_and_yarn group across
    1 directory by <a
    href="https://github.com/%3Ca%20href="https://github.com/dependabot"><code>@%E2%80%8Bdependabot</code></a>[bot]">https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
    in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/798">modelcontextprotocol/typescript-sdk#798</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/798">modelcontextprotocol/typescript-sdk#798</a></li>
    <li>Bump version 1.17.0 by <a
    href="https://github.com/%3Ca%20href="https://github.com/ihrpr"><code>@%E2%80%8Bihrpr</code></a">https://github.com/ihrpr"><code>@​ihrpr</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/810">modelcontextprotocol/typescript-sdk#810</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/810">modelcontextprotocol/typescript-sdk#810</a></li>
    </ul>
    <h2>New Contributors 🙏</h2>
    <ul>
    <li><a href="https://github.com/%3Ca%20href="https://github.com/jiec-msft"><code>@%E2%80%8Bjiec-msft</code></a">https://github.com/jiec-msft"><code>@​jiec-msft</code></a>
    made their first contribution in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/807">modelcontextprotocol/typescript-sdk#807</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/807">modelcontextprotocol/typescript-sdk#807</a></li>
    <li><a href="https://github.com/%3Ca%20href="https://github.com/sd0ric4"><code>@%E2%80%8Bsd0ric4</code></a">https://github.com/sd0ric4"><code>@​sd0ric4</code></a> made
    their first contribution in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/791">modelcontextprotocol/typescript-sdk#791</a></li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/791">modelcontextprotocol/typescript-sdk#791</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/compare/1.16.0...1.17.0">https://github.com/modelcontextprotocol/typescript-sdk/compare/1.16.0...1.17.0</a></p">https://github.com/modelcontextprotocol/typescript-sdk/compare/1.16.0...1.17.0">https://github.com/modelcontextprotocol/typescript-sdk/compare/1.16.0...1.17.0</a></p>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/commit/222db4a9c1ab4f023dc1dd1687212bddd522f48e"><code>222db4a</code></a">https://github.com/modelcontextprotocol/typescript-sdk/commit/222db4a9c1ab4f023dc1dd1687212bddd522f48e"><code>222db4a</code></a>
    Bump version 1.17.0 (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/810">#810</a>)</li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/810">#810</a>)</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/commit/b8ec6653eb1e0a177106debc1349ae1d986c1494"><code>b8ec665</code></a">https://github.com/modelcontextprotocol/typescript-sdk/commit/b8ec6653eb1e0a177106debc1349ae1d986c1494"><code>b8ec665</code></a>
    Bump form-data from 4.0.2 to 4.0.4 in the npm_and_yarn group across 1
    directo...</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/commit/1fc452ea0ef355429af06654cc3ea36a903935b8"><code>1fc452e</code></a">https://github.com/modelcontextprotocol/typescript-sdk/commit/1fc452ea0ef355429af06654cc3ea36a903935b8"><code>1fc452e</code></a>
    fix: remove extraneous code block in README.md (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/791">#791</a>)</li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/791">#791</a>)</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/commit/bb7cccc3ba1b23ab911962a3b314d13c1db88d90"><code>bb7cccc</code></a">https://github.com/modelcontextprotocol/typescript-sdk/commit/bb7cccc3ba1b23ab911962a3b314d13c1db88d90"><code>bb7cccc</code></a>
    feat: support oidc discovery in client sdk (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/652">#652</a>)</li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/652">#652</a>)</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/commit/62c608d8cef50de5b78a99b8db554f6dbc4b0b77"><code>62c608d</code></a">https://github.com/modelcontextprotocol/typescript-sdk/commit/62c608d8cef50de5b78a99b8db554f6dbc4b0b77"><code>62c608d</code></a>
    fix: Explicitly declare accpet type to json when exchanging oauth token
    (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/801">#801</a>)</li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/801">#801</a>)</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/commit/83168250f56bd4c5582bc7d075746f8f90ac2de4"><code>8316825</code></a">https://github.com/modelcontextprotocol/typescript-sdk/commit/83168250f56bd4c5582bc7d075746f8f90ac2de4"><code>8316825</code></a>
    Fix indent (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/807">#807</a>)</li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/807">#807</a>)</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/commit/8e15edca0af05e7eaeb38e0880669a16f749e0f5"><code>8e15edc</code></a">https://github.com/modelcontextprotocol/typescript-sdk/commit/8e15edca0af05e7eaeb38e0880669a16f749e0f5"><code>8e15edc</code></a>
    update codeowners (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/803">#803</a>)</li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/803">#803</a>)</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/commit/c7887c082cb55ddc55d77523df88654ec4120dbf"><code>c7887c0</code></a">https://github.com/modelcontextprotocol/typescript-sdk/commit/c7887c082cb55ddc55d77523df88654ec4120dbf"><code>c7887c0</code></a>
    Add more robust base64 check (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/786">#786</a>)</li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/786">#786</a>)</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/commit/0d545176f9ba852c97a18a40037abff40cd086c2"><code>0d54517</code></a">https://github.com/modelcontextprotocol/typescript-sdk/commit/0d545176f9ba852c97a18a40037abff40cd086c2"><code>0d54517</code></a>
    Add CODEOWNERS file for dsk (<a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/781">#781</a>)</li">https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/781">#781</a>)</li>
    <li>See full diff in <a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/typescript-sdk/compare/1.16.0...1.17.0">compare">https://github.com/modelcontextprotocol/typescript-sdk/compare/1.16.0...1.17.0">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@modelcontextprotocol/sdk&package-manager=npm_and_yarn&previous-version=1.16.0&new-version=1.17.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    
    
    </details>
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Jul 29, 2025
    Configuration menu
    Copy the full SHA
    09ac13c View commit details
    Browse the repository at this point in the history
  5. Add CommentThreadStatus parameter to repos.create_pull_request_thread (

    …#357)
    
    Add CommentThreadStatus parameter to repos.create_pull_request_thread to
    fix all comments being created with "Unknown" status
    
    ## GitHub issue number
    [339](#339)
    ## **Associated Risks**
    
    N/A
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
    Used GPT-4.1 with prompt "Create a comment on {PR url} with the content
    "Test 123" and status of Fixed"
    
    <img width="441" height="491" alt="pr_review_1"
    src="https://github.com/%3Ca%20href="https://github.com/user-attachments/assets/56e10956-bb6c-4ef9-b798-658fe0a71c8c">https://github.com/user-attachments/assets/56e10956-bb6c-4ef9-b798-658fe0a71c8c"
    />
    <img width="1749" height="192" alt="pr_review_2"
    src="https://github.com/%3Ca%20href="https://github.com/user-attachments/assets/26518526-50a8-442c-8c04-d7e2e9a77ea5">https://github.com/user-attachments/assets/26518526-50a8-442c-8c04-d7e2e9a77ea5"
    />
    willherring-eventpoint authored Jul 29, 2025
    Configuration menu
    Copy the full SHA
    49f5f59 View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2025

  1. AssignedTo transformation for get work items in batch (#363)

    Added a transformation on get work items in batch to only show the
    AssignedTo value and not a complex object
    
    ## GitHub issue number #327
    
    ## **Associated Risks**
    
    N/A
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
    Manual tests. Updated automated tests
    danhellem authored Jul 30, 2025
    Configuration menu
    Copy the full SHA
    44c8428 View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2025

  1. [dependencies]: Bump @modelcontextprotocol/inspector from 0.16.1 to 0…

    ….16.2 (#366)
    
    Bumps
    [@modelcontextprotocol/inspector](https://github.com/modelcontextprotocol/inspector)
    from 0.16.1 to 0.16.2.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/releases"><code>@%E2%80%8Bmodelcontextprotocol/inspector</code>'s">https://github.com/modelcontextprotocol/inspector/releases"><code>@​modelcontextprotocol/inspector</code>'s
    releases</a>.</em></p>
    <blockquote>
    <h2>0.16.2</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>feat: Add resource_link content type support to ToolResults
    component by <a
    href="https://github.com/%3Ca%20href="https://github.com/nandsha"><code>@%E2%80%8Bnandsha</code></a">https://github.com/nandsha"><code>@​nandsha</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/564">modelcontextprotocol/inspector#564</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/564">modelcontextprotocol/inspector#564</a></li>
    <li>fix: interpretation of unstructured content and tests by <a
    href="https://github.com/%3Ca%20href="https://github.com/kentcdodds"><code>@%E2%80%8Bkentcdodds</code></a">https://github.com/kentcdodds"><code>@​kentcdodds</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/602">modelcontextprotocol/inspector#602</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/602">modelcontextprotocol/inspector#602</a></li>
    <li>make auth token configurable via env var by <a
    href="https://github.com/%3Ca%20href="https://github.com/kentcdodds"><code>@%E2%80%8Bkentcdodds</code></a">https://github.com/kentcdodds"><code>@​kentcdodds</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/517">modelcontextprotocol/inspector#517</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/517">modelcontextprotocol/inspector#517</a></li>
    <li>Set completion support to false by default by <a
    href="https://github.com/%3Ca%20href="https://github.com/fredericbarthelet"><code>@%E2%80%8Bfredericbarthelet</code></a">https://github.com/fredericbarthelet"><code>@​fredericbarthelet</code></a>
    in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/441">modelcontextprotocol/inspector#441</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/441">modelcontextprotocol/inspector#441</a></li>
    <li>Missing mandatory parameter in the Inspector's CLI command by <a
    href="https://github.com/%3Ca%20href="https://github.com/LazaUK"><code>@%E2%80%8BLazaUK</code></a">https://github.com/LazaUK"><code>@​LazaUK</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/597">modelcontextprotocol/inspector#597</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/597">modelcontextprotocol/inspector#597</a></li>
    <li>[cli] Don't force specific endpoints for remote servers by <a
    href="https://github.com/%3Ca%20href="https://github.com/leblancfg"><code>@%E2%80%8Bleblancfg</code></a">https://github.com/leblancfg"><code>@​leblancfg</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/595">modelcontextprotocol/inspector#595</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/595">modelcontextprotocol/inspector#595</a></li>
    <li>Run the CLI tests in CI by <a
    href="https://github.com/%3Ca%20href="https://github.com/leblancfg"><code>@%E2%80%8Bleblancfg</code></a">https://github.com/leblancfg"><code>@​leblancfg</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/621">modelcontextprotocol/inspector#621</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/621">modelcontextprotocol/inspector#621</a></li>
    <li>feat: support manual entry of OAuth client information by <a
    href="https://github.com/%3Ca%20href="https://github.com/xiaoyijun"><code>@%E2%80%8Bxiaoyijun</code></a">https://github.com/xiaoyijun"><code>@​xiaoyijun</code></a> in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/345">modelcontextprotocol/inspector#345</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/345">modelcontextprotocol/inspector#345</a></li>
    <li>Fix command-line argument passing to pre-fill UI by <a
    href="https://github.com/%3Ca%20href="https://github.com/felixweinberger"><code>@%E2%80%8Bfelixweinberger</code></a">https://github.com/felixweinberger"><code>@​felixweinberger</code></a>
    in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/641">modelcontextprotocol/inspector#641</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/641">modelcontextprotocol/inspector#641</a></li>
    <li>add: elicitation support by <a
    href="https://github.com/%3Ca%20href="https://github.com/QuantGeekDev"><code>@%E2%80%8BQuantGeekDev</code></a">https://github.com/QuantGeekDev"><code>@​QuantGeekDev</code></a>
    in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/535">modelcontextprotocol/inspector#535</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/535">modelcontextprotocol/inspector#535</a></li>
    <li>Update <code>@​modelcontextprotocol/sdk</code> &amp; bump version to
    0.16.2 by <a
    href="https://github.com/%3Ca%20href="https://github.com/felixweinberger"><code>@%E2%80%8Bfelixweinberger</code></a">https://github.com/felixweinberger"><code>@​felixweinberger</code></a>
    in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/645">modelcontextprotocol/inspector#645</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/645">modelcontextprotocol/inspector#645</a></li>
    </ul>
    <h2>New Contributors</h2>
    <ul>
    <li><a href="https://github.com/%3Ca%20href="https://github.com/nandsha"><code>@%E2%80%8Bnandsha</code></a">https://github.com/nandsha"><code>@​nandsha</code></a> made
    their first contribution in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/564">modelcontextprotocol/inspector#564</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/564">modelcontextprotocol/inspector#564</a></li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/fredericbarthelet"><code>@%E2%80%8Bfredericbarthelet</code></a">https://github.com/fredericbarthelet"><code>@​fredericbarthelet</code></a>
    made their first contribution in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/441">modelcontextprotocol/inspector#441</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/441">modelcontextprotocol/inspector#441</a></li>
    <li><a href="https://github.com/%3Ca%20href="https://github.com/LazaUK"><code>@%E2%80%8BLazaUK</code></a">https://github.com/LazaUK"><code>@​LazaUK</code></a> made
    their first contribution in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/597">modelcontextprotocol/inspector#597</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/597">modelcontextprotocol/inspector#597</a></li>
    <li><a href="https://github.com/%3Ca%20href="https://github.com/leblancfg"><code>@%E2%80%8Bleblancfg</code></a">https://github.com/leblancfg"><code>@​leblancfg</code></a>
    made their first contribution in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/595">modelcontextprotocol/inspector#595</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/595">modelcontextprotocol/inspector#595</a></li>
    <li><a href="https://github.com/%3Ca%20href="https://github.com/xiaoyijun"><code>@%E2%80%8Bxiaoyijun</code></a">https://github.com/xiaoyijun"><code>@​xiaoyijun</code></a>
    made their first contribution in <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/pull/345">modelcontextprotocol/inspector#345</a></li">https://redirect.github.com/modelcontextprotocol/inspector/pull/345">modelcontextprotocol/inspector#345</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/compare/0.16.1...0.16.2">https://github.com/modelcontextprotocol/inspector/compare/0.16.1...0.16.2</a></p">https://github.com/modelcontextprotocol/inspector/compare/0.16.1...0.16.2">https://github.com/modelcontextprotocol/inspector/compare/0.16.1...0.16.2</a></p>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/commit/cfc17e57d571cf51dad6aecde5dc531850a0e9a6"><code>cfc17e5</code></a">https://github.com/modelcontextprotocol/inspector/commit/cfc17e57d571cf51dad6aecde5dc531850a0e9a6"><code>cfc17e5</code></a>
    Merge pull request <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/issues/645">#645</a">https://redirect.github.com/modelcontextprotocol/inspector/issues/645">#645</a>
    from modelcontextprotocol/fweinberger/update-ts-sdk</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/commit/939a7dab58bc140371e087b4df67c0320ec6227f"><code>939a7da</code></a">https://github.com/modelcontextprotocol/inspector/commit/939a7dab58bc140371e087b4df67c0320ec6227f"><code>939a7da</code></a>
    chore: update ts-sdk to 0.17.0 and bump version to 0.16.2</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/commit/9f6e731dc427ff026bd46803c530f74d1e4a70ed"><code>9f6e731</code></a">https://github.com/modelcontextprotocol/inspector/commit/9f6e731dc427ff026bd46803c530f74d1e4a70ed"><code>9f6e731</code></a>
    Merge pull request <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/issues/535">#535</a">https://redirect.github.com/modelcontextprotocol/inspector/issues/535">#535</a>
    from QuantGeekDev/feature/elicitations</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/commit/85df5fd836afdae3df3cc1d9c6bbbb75126c695b"><code>85df5fd</code></a">https://github.com/modelcontextprotocol/inspector/commit/85df5fd836afdae3df3cc1d9c6bbbb75126c695b"><code>85df5fd</code></a>
    Merge pull request <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/issues/641">#641</a">https://redirect.github.com/modelcontextprotocol/inspector/issues/641">#641</a>
    from modelcontextprotocol/fweinberger/fix-cli-args</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/commit/21745d6507208ec2c7a25705855c4dc65499d327"><code>21745d6</code></a">https://github.com/modelcontextprotocol/inspector/commit/21745d6507208ec2c7a25705855c4dc65499d327"><code>21745d6</code></a>
    Merge branch 'main' into fweinberger/fix-cli-args</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/commit/eda6c05ba1fc78c86058dbc58a9f96b3dbef6a66"><code>eda6c05</code></a">https://github.com/modelcontextprotocol/inspector/commit/eda6c05ba1fc78c86058dbc58a9f96b3dbef6a66"><code>eda6c05</code></a>
    Merge branch 'main' into feature/elicitations</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/commit/0db0bbb5c154e3122592fb27d59d2716e96d9389"><code>0db0bbb</code></a">https://github.com/modelcontextprotocol/inspector/commit/0db0bbb5c154e3122592fb27d59d2716e96d9389"><code>0db0bbb</code></a>
    Merge pull request <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/modelcontextprotocol/inspector/issues/345">#345</a">https://redirect.github.com/modelcontextprotocol/inspector/issues/345">#345</a>
    from xiaoyijun/feat-support-enter-oauth-client-inform...</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/commit/c7b90a1af9b727d5f6e0b505ced86bd66981d9b4"><code>c7b90a1</code></a">https://github.com/modelcontextprotocol/inspector/commit/c7b90a1af9b727d5f6e0b505ced86bd66981d9b4"><code>c7b90a1</code></a>
    Fix command-line argument passing to pre-fill UI</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/commit/144755b3694bad5ae9437730ae48274e2a172b57"><code>144755b</code></a">https://github.com/modelcontextprotocol/inspector/commit/144755b3694bad5ae9437730ae48274e2a172b57"><code>144755b</code></a>
    Merge branch 'main' into feature/elicitations</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/commit/f6c9342678e968c40379a2d7f73daf8f30cc1395"><code>f6c9342</code></a">https://github.com/modelcontextprotocol/inspector/commit/f6c9342678e968c40379a2d7f73daf8f30cc1395"><code>f6c9342</code></a>
    test: update tests</li>
    <li>Additional commits viewable in <a
    href="https://github.com/%3Ca%20href="https://github.com/modelcontextprotocol/inspector/compare/0.16.1...0.16.2">compare">https://github.com/modelcontextprotocol/inspector/compare/0.16.1...0.16.2">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@modelcontextprotocol/inspector&package-manager=npm_and_yarn&previous-version=0.16.1&new-version=0.16.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    
    
    </details>
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    2bb94eb View commit details
    Browse the repository at this point in the history
  2. Adding work_item_unlink to remove links from a work item (#365)

    Added tool and tests to remove a link from a work item in batch. Meaning
    you can remove several links at once.
    
    ## GitHub issue number #132 
    
    ## **Associated Risks**
    
    N/A
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
    Added all new automated tests and tested manually. Will post video and
    prompts in follow-up commits or PR
    
    ---------
    
    Co-authored-by: Copilot <[email protected]>
    danhellem and Copilot authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    62458e4 View commit details
    Browse the repository at this point in the history
  3. Add pull request update tool (#361)

    - Add repo_update_pull_request tool for updating PR title, description,
    draft status, and target branch
    - Update documentation to reflect new tool capabilities
    - Add validation to ensure at least one field is provided for update
    - Support partial updates with optional parameters
    
    ## GitHub issue number
    [322](#322)
    
    ## **Associated Risks**
    
    - May cause confusion with similar `update_pull_request_status` and
    `update_pull_request_reviewers`, neither of those operations can be
    accomplished with the underlying API
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    - Been using it for a little over a week for personal uses. 
    - src/tools/repos.test.ts (some very loose unit tests I let copilot
    author)
    beauzeaux authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    78a1e36 View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2025

  1. Add Advanced Security Alert tools (#270)

    We are introducing two new tools---`advsec_get_alerts` and 
    `advsec_get_alert_details`---in this change to allow customers to
    work with [GHAzDO (GitHub Advanced Security for Azure
    DevOps)](https://aka.ms/advanced-security) alerts directly in code 
    editor.
    
    ## GitHub issue number
    
    N/A
    
    ## **Associated Risks**
    
    None
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [ ] 🔭 ~~Telemetry added, updated, or N/A~~ N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
      * Automated unit tests run using `npm run test`
      * Manual testing with VS Code Agent Mode in Copilot Chat.
    
    ---------
    
    Co-authored-by: Nuthan Munaiah <[email protected]>
    nuthanmunaiah and Nuthan Munaiah authored Aug 1, 2025
    Configuration menu
    Copy the full SHA
    2a92403 View commit details
    Browse the repository at this point in the history
  2. Accepting expected result as a part of TestCase step instead of hardc…

    …oding (#381)
    
    _Replace_ by description of the work done
    
    ## GitHub issue number
    #106 
    
    ## **Associated Risks**
    
    _Replace_ by possible risks this pull request can bring you might have
    thought of
    
    ## ✅ **PR Checklist**
    
    - [x] **I have read the [contribution
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)**
    - [x] **I have read the [code of conduct
    guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)**
    - [x] Title of the pull request is clear and informative.
    - [x] 👌 Code hygiene
    - [x] 🔭 Telemetry added, updated, or N/A
    - [x] 📄 Documentation added, updated, or N/A
    - [x] 🛡️ Automated tests added, or N/A
    
    ## 🧪 **How did you test it?**
    
    <img width="629" height="447" alt="image"
    src="https://github.com/%3Ca%20href="https://github.com/user-attachments/assets/b01aa46a-ddf2-4c2c-9f11-23c54e62d42a">https://github.com/user-attachments/assets/b01aa46a-ddf2-4c2c-9f11-23c54e62d42a"
    />
    
    <img width="981" height="193" alt="image"
    src="https://github.com/%3Ca%20href="https://github.com/user-attachments/assets/7b8bc3cf-f8fa-4c7c-92df-ed1fe0216f05">https://github.com/user-attachments/assets/7b8bc3cf-f8fa-4c7c-92df-ed1fe0216f05"
    />
    
    
    _Replace_ with use cases tested and models used
    
    ---------
    
    Co-authored-by: Dan Hellem <[email protected]>
    skmanoj and danhellem authored Aug 1, 2025
    Configuration menu
    Copy the full SHA
    34b964d View commit details
    Browse the repository at this point in the history
  3. [dependencies]: Bump azure-devops-extension-api from 4.257.0 to 4.258…

    ….0 (#370)
    
    Bumps
    [azure-devops-extension-api](https://github.com/Microsoft/azure-devops-extension-api)
    from 4.257.0 to 4.258.0.
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/microsoft/azure-devops-extension-api/commit/5665c5358e2d6dce1260bf2a6ef32b4317da384e"><code>5665c53</code></a">https://github.com/microsoft/azure-devops-extension-api/commit/5665c5358e2d6dce1260bf2a6ef32b4317da384e"><code>5665c53</code></a>
    All files have been added to the repo</li>
    <li><a
    href="https://github.com/%3Ca%20href="https://github.com/microsoft/azure-devops-extension-api/commit/69c69dadebe8be6a4af8b66c4bcc006011824191"><code>69c69da</code></a">https://github.com/microsoft/azure-devops-extension-api/commit/69c69dadebe8be6a4af8b66c4bcc006011824191"><code>69c69da</code></a>
    Merge pull request <a
    href="https://github.com/%3Ca%20href="https://redirect.github.com/Microsoft/azure-devops-extension-api/issues/168">#168</a">https://redirect.github.com/Microsoft/azure-devops-extension-api/issues/168">#168</a>
    from microsoft/releases/4.257.0</li>
    <li>See full diff in <a
    href="https://github.com/%3Ca%20href="https://github.com/Microsoft/azure-devops-extension-api/compare/4.257.0...4.258.0">compare">https://github.com/Microsoft/azure-devops-extension-api/compare/4.257.0...4.258.0">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=azure-devops-extension-api&package-manager=npm_and_yarn&previous-version=4.257.0&new-version=4.258.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    
    
    </details>
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Dan Hellem <[email protected]>
    dependabot[bot] and danhellem authored Aug 1, 2025
    Configuration menu
    Copy the full SHA
    4345602 View commit details
    Browse the repository at this point in the history
  4. 1.3.0

    Novaes committed Aug 1, 2025
    Configuration menu
    Copy the full SHA
    9d9940a View commit details
    Browse the repository at this point in the history
Loading