{"_id":"@cybercdc/tfs-onprem-mcp","name":"@cybercdc/tfs-onprem-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@cybercdc/tfs-onprem-mcp","version":"0.1.0","description":"MCP server for Azure DevOps Server / TFS on-prem via NTLM-authenticated REST APIs.","type":"module","author":{"name":"Sun Hongbing"},"homepage":"https://github.com/cybercdc/tfs-onprem-mcp#readme","bugs":{"url":"https://github.com/cybercdc/tfs-onprem-mcp/issues"},"repository":{"type":"git","url":"git+https://github.com/cybercdc/tfs-onprem-mcp.git"},"publishConfig":{"access":"public"},"bin":{"tfs-onprem-mcp":"src/index.js"},"scripts":{"start":"node src/index.js","check":"node --check src/index.js"},"keywords":["mcp","model-context-protocol","tfs","azure-devops-server","azure-devops"],"license":"MIT","engines":{"node":">=20"},"dependencies":{"@modelcontextprotocol/sdk":"^1.27.1","zod":"^3.25.76"},"gitHead":"500b95bbe512267c3e936bae371cbca9d082b17b","_id":"@cybercdc/tfs-onprem-mcp@0.1.0","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-a0NoFFGvmeTfH8b1Xmhy2hDFrA5koU+TbkZmCFUI+4tc21nwVq28BnWsYa9vLmKqYpAxaFPfWtJ3bpQGsjVx3A==","shasum":"f96622f2348c749d12c1257098b871d4eb2f0ce7","tarball":"https://registry.npmjs.org/@cybercdc/tfs-onprem-mcp/-/tfs-onprem-mcp-0.1.0.tgz","fileCount":4,"unpackedSize":23731,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAwHYwtGO8RUKcH0bywhxxsEvnbPphtEWyEsVG4aM8ItAiAXQH+8apr3zzwxsp3Q/XLes4/UGqWCMP7yda5DgvBqIg=="}]},"_npmUser":{"name":"cybercdc","email":"cybercdc@139.com"},"directories":{},"maintainers":[{"name":"cybercdc","email":"cybercdc@139.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tfs-onprem-mcp_0.1.0_1773308532468_0.2847535054321637"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-12T09:42:12.311Z","0.1.0":"2026-03-12T09:42:12.655Z","modified":"2026-03-12T09:42:12.892Z"},"maintainers":[{"name":"cybercdc","email":"cybercdc@139.com"}],"description":"MCP server for Azure DevOps Server / TFS on-prem via NTLM-authenticated REST APIs.","homepage":"https://github.com/cybercdc/tfs-onprem-mcp#readme","keywords":["mcp","model-context-protocol","tfs","azure-devops-server","azure-devops"],"repository":{"type":"git","url":"git+https://github.com/cybercdc/tfs-onprem-mcp.git"},"author":{"name":"Sun Hongbing"},"bugs":{"url":"https://github.com/cybercdc/tfs-onprem-mcp/issues"},"license":"MIT","readme":"# tfs-onprem-mcp\n\nMCP server for on-prem TFS / Azure DevOps Server instances that require `NTLM` authentication.\n\nThis server uses the official MCP TypeScript SDK over `stdio` and shells out to `curl --ntlm` for REST calls. It is aimed at environments like the one validated here:\n\n- Azure DevOps Server / TFS on-prem\n- collection-based URLs such as `http://host/DefaultCollection`\n- Windows-domain credentials\n- REST API version `5.1`\n\n## Features\n\n- List projects\n- List repositories in a project\n- List branches in a repository\n- List recently changed work items\n- List available work item types\n- Inspect field definitions for a work item type\n- Run custom WIQL queries\n- Create generic work items from field reference names\n- Create backlog items with required custom fields\n\n## Requirements\n\n- Node.js `20+`\n- `curl` available on `PATH`\n- TFS / Azure DevOps Server reachable from the host machine\n\n## Install\n\n```bash\nnpm install\n```\n\nPackage tarball:\n\n```bash\nnpm pack\n```\n\n## Environment Variables\n\nRequired:\n\n```bash\nexport AZURE_DEVOPS_ORG_URL=\"http://your-tfs-host\"\nexport AZURE_DEVOPS_COLLECTION=\"DefaultCollection\"\nexport AZURE_DEVOPS_USERNAME=\"domain_user\"\nexport AZURE_DEVOPS_PASSWORD=\"your-password\"\n```\n\nOptional:\n\n```bash\nexport AZURE_DEVOPS_PROJECT=\"Your Default Project\"\nexport AZURE_DEVOPS_API_VERSION=\"5.1\"\n```\n\n## Run Locally\n\n```bash\nnpm start\n```\n\n## Run With Docker\n\nBuild the image:\n\n```bash\ndocker build -t tfs-onprem-mcp .\n```\n\nRun it with your TFS connection settings:\n\n```bash\ndocker run --rm -i \\\n  -e AZURE_DEVOPS_ORG_URL=\"http://your-tfs-host\" \\\n  -e AZURE_DEVOPS_COLLECTION=\"DefaultCollection\" \\\n  -e AZURE_DEVOPS_USERNAME=\"domain_user\" \\\n  -e AZURE_DEVOPS_PASSWORD=\"your-password\" \\\n  -e AZURE_DEVOPS_PROJECT=\"体检新产品\" \\\n  -e AZURE_DEVOPS_API_VERSION=\"5.1\" \\\n  tfs-onprem-mcp\n```\n\nIf your MCP client supports Docker-based stdio servers, point it at the image and pass the same environment variables there.\n\n## MCP Client Config\n\nExample client config for a stdio MCP client:\n\n```json\n{\n  \"mcpServers\": {\n    \"tfs-onprem\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/tfs-onprem-mcp/src/index.js\"],\n      \"env\": {\n        \"AZURE_DEVOPS_ORG_URL\": \"http://your-tfs-host\",\n        \"AZURE_DEVOPS_COLLECTION\": \"DefaultCollection\",\n        \"AZURE_DEVOPS_USERNAME\": \"domain_user\",\n        \"AZURE_DEVOPS_PASSWORD\": \"your-password\",\n        \"AZURE_DEVOPS_PROJECT\": \"体检新产品\",\n        \"AZURE_DEVOPS_API_VERSION\": \"5.1\"\n      }\n    }\n  }\n}\n```\n\nIf you publish this package to npm, you can switch to:\n\n```json\n{\n  \"mcpServers\": {\n    \"tfs-onprem\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cybercdc/tfs-onprem-mcp\"],\n      \"env\": {\n        \"AZURE_DEVOPS_ORG_URL\": \"http://your-tfs-host\",\n        \"AZURE_DEVOPS_COLLECTION\": \"DefaultCollection\",\n        \"AZURE_DEVOPS_USERNAME\": \"domain_user\",\n        \"AZURE_DEVOPS_PASSWORD\": \"your-password\",\n        \"AZURE_DEVOPS_PROJECT\": \"体检新产品\"\n      }\n    }\n  }\n}\n```\n\n## Exposed Tools\n\n- `server_info`\n- `list_projects`\n- `list_repositories`\n- `list_branches`\n- `list_recent_work_items`\n- `list_work_item_types`\n- `get_work_item_type_fields`\n- `query_work_items`\n- `create_work_item`\n- `create_backlog_item`\n\n## Recommended Usage Flow\n\nFor a new TFS project, the safest flow is:\n\n1. Call `list_work_item_types`\n2. Pick a work item type such as `Bug`, `任务`, or `产品积压工作(backlog)项`\n3. Call `get_work_item_type_fields`\n4. Use the required field reference names to call `create_work_item`\n\nThis avoids hardcoding one project's process template into the MCP client workflow.\n\n## create_backlog_item Notes\n\n`create_backlog_item` is still included as a convenience wrapper for the validated environment behind this package. It assumes a customized backlog template with these required logical fields:\n\n- `acceptanceCriteria`\n- `storyType`\n- `relatedProject`\n- `productCategory`\n- `expectedReleaseDate`\n\nIf your server uses different custom field reference names, prefer `create_work_item` instead of editing the package.\n\n## Publish\n\n1. Confirm the scoped package name in `package.json` is correct for your npm account or org.\n2. Update the GitHub URLs in `package.json` if your repository owner or organization differs.\n3. Bump `version`.\n4. Log in:\n\n```bash\nnpm login\n```\n\n5. Publish:\n\n```bash\nnpm publish --access public\n```\n\n## GitHub Release Checklist\n\n1. Push the current version tag:\n\n```bash\ngit tag v0.1.0\ngit push origin v0.1.0\n```\n\n2. Create a GitHub release from that tag.\n3. Attach the `npm pack` tarball if you want a downloadable artifact on the release page.\n4. Use release notes that mention:\n   - NTLM-authenticated TFS / Azure DevOps Server support\n   - validated REST API version `5.1`\n   - generic work item creation plus backlog convenience wrapper\n\n## Sources\n\n- MCP TypeScript SDK README: https://github.com/modelcontextprotocol/typescript-sdk\n- MCP documentation: https://modelcontextprotocol.io\n","readmeFilename":"README.md","_rev":"1-0b681df6d7825b23ad4d3196814c5831"}