{"_id":"@yawlabs/mcp-compliance","_rev":"48-9cc6b9f1c6199929ce4364ce178966ef","name":"@yawlabs/mcp-compliance","dist-tags":{"latest":"0.20.2"},"versions":{"0.1.0":{"name":"@yawlabs/mcp-compliance","version":"0.1.0","keywords":["mcp","model-context-protocol","compliance","testing","cli"],"author":{"url":"https://yaw.sh","name":"Yaw Labs"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.1.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/yawlabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"9838375156b30ac8f0462fcbd8b9bd16f2635f06","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.1.0.tgz","fileCount":8,"integrity":"sha512-/KVZMEb5/3xyDdQzMzAcn5DmhuL+xrctoPpT7tYRBKIITrMRPRARJmopOxQgUO735k0jqTVe0rTH0PrdH9nxBQ==","signatures":[{"sig":"MEUCIQDl5dGyiTgN6mOuGI0yXeHttKk3AE6lx0tdIQhB8XdgRgIgB95S4NMJ+zzsa88gTo2Yx1xdyATiHy6WAtxGRtELKL8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69671},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"}},"scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/yawlabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.1.0_1775484037999_0.46483993685770697","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@yawlabs/mcp-compliance","version":"0.1.1","keywords":["mcp","model-context-protocol","compliance","testing","cli"],"author":{"url":"https://yaw.sh","name":"Yaw Labs"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.1.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/yawlabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"5c39fc0b307013c48aab7e7e6ea5f959a8fe1af9","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.1.1.tgz","fileCount":8,"integrity":"sha512-M+hUK9+kLDFR0r8fGLEO17CtHct9viHegkk0peMoKGl+0Am5UBIyY8xLuJZ+rBSii1iD1o0/QmHySFPpvbdhQA==","signatures":[{"sig":"MEYCIQDofw2mMm6Yf+EO3CihHJTfeF30Nb0FDPX9woVoLBSmlAIhALM+PK5LCIUYE6i3X06wZ3EDsJiCKsTklfOf049U2s74","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69679},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"}},"scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/yawlabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.1.1_1775484219886_0.6506765553236495","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@yawlabs/mcp-compliance","version":"0.1.2","keywords":["mcp","model-context-protocol","compliance","testing","cli"],"author":{"url":"https://yaw.sh","name":"Yaw Labs"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.1.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/yawlabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"d92902b4870c9d0509f26a49e7d43ccc9ab7ae78","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.1.2.tgz","fileCount":8,"integrity":"sha512-x030Rqy8vqHnB7FsUe4yzEjQajA4bJT+B9tzrZQKGj5A6itzxZSJtEeEa+Z0F1z2WJWH1i78TqoTeUwErmm/YQ==","signatures":[{"sig":"MEYCIQDol8j3hcdJrtFw8bArw0KeufWFYHirxIV74uWI1MQF9AIhALp1CKxj08PcQoSq3zAHyZap1BZ4bfNNuXWGYrnrLryp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75301},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"}},"gitHead":"146465ea7377211041b500343a45a342b75b9d7f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/yawlabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.1.2_1775490876330_0.33748283169592597","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@yawlabs/mcp-compliance","version":"0.2.0","keywords":["mcp","model-context-protocol","compliance","testing","cli"],"author":{"url":"https://yaw.sh","name":"Yaw Labs"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.2.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/yawlabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"dddbb33855986e9bae8cec2b6717eebc3849e309","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.2.0.tgz","fileCount":8,"integrity":"sha512-LaMz1TLboFZS1TwLxmbhSS59D/BAsvFQvFZrDXi76E8vs0avbQS5Xf+jVBfLlURWCCQQKEcmxmgOidwP4KwH2Q==","signatures":[{"sig":"MEUCIF1seEkONSyN7h/W+M/GbYKP3nngU9vbuf2JATLnyteSAiEAu7V/QhtMUu+uI1RQoJStbzDeQOCQWxke9A1BQhoxSeA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147211},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"}},"gitHead":"8f73da203bd1df89e1641d6ad55d898fdebc8ac5","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/yawlabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.2.0_1775527470575_0.3245899668714265","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@yawlabs/mcp-compliance","version":"0.2.1","keywords":["mcp","model-context-protocol","compliance","testing","cli"],"author":{"url":"https://yaw.sh","name":"Yaw Labs"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.2.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/yawlabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"2243965f09acf07b7f51ffb23881759bbe18974a","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.2.1.tgz","fileCount":8,"integrity":"sha512-A1fanYATyHQdlLW1YFd8mZiRyu/BqGdtr0/gh7IRaor2DT6/kGpzdOuRDe9iYDvAd/YjgsL5cfxC+ANcKfEclw==","signatures":[{"sig":"MEUCIQDHMRO/zarbTfh1QxOMP31/aMuTqkKheElgdF9OX+gVzgIgGC5oEnMm0dzsyOnMVQ6zfGs2C9innBG/Xv4xpL1/m7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147953},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"}},"gitHead":"12694d0a501b52db7350090a3bd0a6c6cf9659c3","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/yawlabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.2.1_1775527977437_0.4299163069826355","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@yawlabs/mcp-compliance","version":"0.3.0","keywords":["mcp","model-context-protocol","compliance","testing","cli"],"author":{"url":"https://yaw.sh","name":"Yaw Labs"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.3.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"917060f6943dcffb29a647796bf7b712439fd19f","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.3.0.tgz","fileCount":8,"integrity":"sha512-Ve/B5v3kKK2Urj0HzohYssGIxMY2CInsdBa6TTagHE+PngOhlwXXqnu6UMUg850Egua4kc7Qe1D/T5Ho6sfPGA==","signatures":[{"sig":"MEUCIFd/2BMuU/8MXdWoi8tjUZ56okLSsbotavB0jrOdleW+AiEA5/WbwF+yvh59WfjBqzTKSleUxE7SPQN/Gj7XuGRRMEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161892},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"}},"gitHead":"ccc9c8ef2fc07c838fb3d340c1924ab3df82ca2c","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.9.7","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.3.0_1775588238193_0.7075604031005129","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@yawlabs/mcp-compliance","version":"0.4.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.4.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"1756951ced5fccdbcf46066d8c483c53f17c8aae","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.4.0.tgz","fileCount":9,"integrity":"sha512-R1KP1RXg6GOL+3nGORN7vR/rGW27hkhgEJLpC+pxQ+l6TF40YCqHw5ahJSG9BEWWvFAFVoRJWkoipVkAN5Wo6w==","signatures":[{"sig":"MEUCIQCcQBTgE/kg0VxsKYd2BvBbdPppT4aPOcogtMsMI+ccDQIgWkMAVA1P0uAEV8Q9ilpgV6hGAmfsp3WFPgowMOYczP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184493},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"}},"gitHead":"1f20b725a385cd0e5b9577e8860f50d158a12ced","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.4.0_1775624662731_0.981631571338631","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@yawlabs/mcp-compliance","version":"0.5.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.5.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"3303a865b6a4126dd77dc6f9fb56c2b634deb805","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.5.0.tgz","fileCount":9,"integrity":"sha512-AfTq/vWeAkPIel2mEcfY7egiuRhoMQpOTALZYfsLdVsqY8gEyjUSxGSX1uVk+K/Mk2e7tStd2Hg3w+Lp7i8aOQ==","signatures":[{"sig":"MEYCIQDeowZm9lNH8+vg01dcHv7v3l0BPY3JwacBBQFkhxERFQIhAIErhpqll6V7SuUvNqiX4Vs1fRnU7rC5jWwUukTlSq5L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209600},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"}},"gitHead":"06303b9d42899fc2f525d9389e6a31c2506da74c","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.5.0_1775672727489_0.2978808432733959","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@yawlabs/mcp-compliance","version":"0.6.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.6.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"52bb620e2dd4dec588a13c3b7dfcd3945b907d7b","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.6.0.tgz","fileCount":9,"integrity":"sha512-6PfFu6TAsk58pNzlxB+VuqfOcaLlkDMIxlFabgV0h/hnYXqlbo5XzYvXlpsfv40rwhD+M9chRotg9Hjx4rLwVg==","signatures":[{"sig":"MEYCIQDnaeLDZOMTKmwOB9DyDp3D446rC8ca0+4hRIc+E+qiYgIhAMqCUoOjZFPNzVt0ccAGgJDQgjL18ufK+OtfkgjFEmOC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292858},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"}},"gitHead":"1734dadc834610fcd7988eb1c7a3100f7b557090","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.9.7","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.6.0_1775699967860_0.9372812425207044","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@yawlabs/mcp-compliance","version":"0.7.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.7.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"afc022b68b7dc78c4520e18b09357392aa7c6b5e","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.7.0.tgz","fileCount":9,"integrity":"sha512-WhaKN+Z/+ZUwxQZiNWo3XYF0LrsLihnSvYGAe6HxwGnA2gYUV1IkMvydjn/b5g5NtukPZolzOr2441p5shyRgg==","signatures":[{"sig":"MEYCIQCzwL9JPRsRB++MJ9XVb1XL8S7Cv4mAOXs7BVkeTCJF9AIhAK/0ls8sQCfbYl8rDLbEuvNCI/Ld1C2c6MczlZxAEoK3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":330366},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"gitHead":"618169010737b9246eda4dac700a7bf80e1c8975","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.7.0_1775781374226_0.8060874042169379","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@yawlabs/mcp-compliance","version":"0.8.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.8.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"17710d89c99e5bc656a46adcd20d56fc40a12c90","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.8.0.tgz","fileCount":9,"integrity":"sha512-rAsr0w3rqDzuGX96D3TPemE6+FDDY7gMSw435EMDYHS/9TybIODvLQbgTAbCCck+453/OKkxUy+KozEC6e3Jow==","signatures":[{"sig":"MEYCIQDVM9nVSIdxdjmdB6U4oDkHJEiFksK/ER9f/vN/899IVAIhAKgnz1D9APiashaXeawdidSiiJEX+56YAqKiK7w8Xm9g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343097},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"gitHead":"9f740b308f6a8650ca71daec45713f6b93e808b1","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.8.0_1775782449789_0.1973542903351322","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@yawlabs/mcp-compliance","version":"0.8.1","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.8.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"e81b45711946c5f5e683583ccd2e60149807e9f3","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.8.1.tgz","fileCount":9,"integrity":"sha512-9/70cpo4xXEfx2m9KyM9PmeXVALzc+vrhR70MDRp6z6rBB+TwQETBH9PytZOcv5/Hn/eQ6TeYtoLzBJ7waWuUQ==","signatures":[{"sig":"MEQCIBSIuRVy3MMjFzllqIMlGyxu+KGe+AKjdflXslnkAo1NAiB5E8rNXDy/tU2XjgGDLMcdv1Beze8e+Um3hWmCJznJOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343758},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"gitHead":"7a57578de2307fe21050364a7b8513d7e2f17eca","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.8.1_1775872771224_0.6715131216752763","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@yawlabs/mcp-compliance","version":"0.9.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.9.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"45b4a4440ba58370305a10f3917954c4397c3400","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.9.0.tgz","fileCount":9,"integrity":"sha512-MRu9OB1A/c8G2xT7W6QppWp7tyq6qUcEiVkgDwWpawRmM6qbmUmp3OZ5/NCe9VDTITlq0E90aMynTSgBYlzxQQ==","signatures":[{"sig":"MEQCICbtObICAHRFr4VI+ZlNv6KBnXk17wfFpOy9gq6JcMYeAiApP69w/E4ICsxzQhJGwlC2zPtpfWUgeKwWnQffI+HDYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":403530},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"gitHead":"0e8f9ba218e00ad7cf9e9e9a6770f750b39969ff","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.9.0_1776046840449_0.08752638255233758","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@yawlabs/mcp-compliance","version":"0.9.1","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.9.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"e2ceabcaf57e24d94f8131a7c9b1a0d3c2033d5a","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.9.1.tgz","fileCount":9,"integrity":"sha512-5yNacjLxltmN8eHSrAXPpv/58sNMU+4CMGymDPWm3eIcGNO7nukfb1qFFg44xWr4pLCDLr5ddpZ3L2ydhmnUNA==","signatures":[{"sig":"MEUCIQD0V/GuCWrrUzkFdr6PyaLw4CkO3F+eZr2i4m126YmocQIgLRVEcznrShOIhwG1fbjnkpn5P6iE2VVppxEnLJh6MZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":419918},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"gitHead":"48747cb9d9378b2c544019bdedb182d6616ae35f","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.9.1_1776048577063_0.7904255625376446","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@yawlabs/mcp-compliance","version":"0.9.2","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.9.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"c2f8aa1da398da936a1d016ff6eb1ac98709b43c","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.9.2.tgz","fileCount":9,"integrity":"sha512-P+YBtEa9wcUrehhL4e9YdyblZJX76t81NRbM0+vZJQTYWrOH/ycjh6jOAFaZsNv2Ywxc55kGB2qeGpqKCGr/Ig==","signatures":[{"sig":"MEUCIC16Uolh1jihQlujyj6OnKzYT0ZjuuzBAJ9FzCab+CI4AiEAnnFs3Sv3t3agdARtWC/nzegWOZi2flAdQjsvotxm/p0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":422630},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"gitHead":"ca609036c460d36bae51127e6885e8b9c3b3294d","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.9.2_1776050284693_0.5847212354839788","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@yawlabs/mcp-compliance","version":"0.10.1","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.10.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"046519866cbd4a55224ccfe8754ccb34dd8fd052","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.10.1.tgz","fileCount":10,"integrity":"sha512-O2uJSyw38ZDF7abZBQ4catj2K9VLInIFnoNv8b4N4VFeUpntZxL+vxDKGBAHHdgohkn15I1HgW0yD8tgKCb8Iw==","signatures":[{"sig":"MEUCIQDjoDaXVDyM4n0V5BnJeELDf3Uco+ZntlTLd/NNznzw1AIgS2Zx3iyK5WH4sd2Aw7sSYUr9joZfK+dKxC1seXvCVHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":453844},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"gitHead":"71acb70816a508b972c024f776c37a6b293c5277","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.10.1_1776053340380_0.2005354681849929","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@yawlabs/mcp-compliance","version":"0.11.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.11.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"19f7788df7be8889248b7c703be93d19ed6675ff","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.11.0.tgz","fileCount":10,"integrity":"sha512-i4Fpx9eQ1umfbx7XxVXsahRdh+PGlUnixsvmH+r8nrLl8aQC8ds5QNPwm1Vpqnyte4RrS0GQIAIKyj8wHIvq3Q==","signatures":[{"sig":"MEUCIGvYUY5ZNayT4VfK62OpjhZLAOTolW4hmKyGJBbz3BhvAiEA0bzhcFwLzNOTWUpzx3C6cPOysexkYMX/aAjs3YIUWzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":462610},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"gitHead":"302f3a389072353c87db8a5b6f318fa76abdbd03","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.11.0_1776055808521_0.5369650127231702","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@yawlabs/mcp-compliance","version":"0.12.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.12.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"d08669362319577e7e7fa108a81da1825b0f61ab","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.12.0.tgz","fileCount":10,"integrity":"sha512-uYWu1D3Z3vyIcmR0kK5Kdl22e9WY0iBBmfCRt/alnUyi8/vFZW5TFtYu0dwhc6WdXM1FSfHYMkKdEkAvGtLrtQ==","signatures":[{"sig":"MEYCIQDYcLOlu7hlhbk55cnCmxdg2INjQmIxNMljp1DYvj5AZQIhANqXIbEKV04+jWb8qUQFQmhaEi6KxM9nLTXt5BAwkG/B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":465835},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"gitHead":"2ca57f0bcc9651b395451721670cc2e51d41a409","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.12.0_1776082073435_0.2522163005664033","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@yawlabs/mcp-compliance","version":"0.12.1","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.12.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"853183b44d464ff207220b0f4596c85b84312926","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.12.1.tgz","fileCount":10,"integrity":"sha512-U95bOOdIjgzKJlIsrAy4o07HzOaneLBm/Ftb7ZqoYGgn8Oga1M8m4NcX4Z9TxU3RVvZYn7H927oUWdcS5FK/qA==","signatures":[{"sig":"MEYCIQDePy867PsI8ywFJNhZNpdNojJAQQtRLZ21mjOEUhXyYwIhAP9m9vDxQwUVIN0FGmTkTXMIw4fybOX2Pg3I8beV+VLp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":467325},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"gitHead":"c229d4e0f305135a110f873ad6fffc376cf5f822","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.12.1_1776083264499_0.530668678850698","host":"s3://npm-registry-packages-npm-production"}},"0.12.2":{"name":"@yawlabs/mcp-compliance","version":"0.12.2","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.12.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"a90df5fa7e059ae0a84f280c95727285bd11f190","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.12.2.tgz","fileCount":10,"integrity":"sha512-8Mbkv9Nz2Dt9hl0PzPd7/++PoTQx+T9+0MjNfVwfP5Ngf5yf63fdAZ9R0rs5RSq191HFeJ/nGxw0hG+B4Ghwrg==","signatures":[{"sig":"MEUCIHA5nX4vFhZXYXUwrOxrkJPDwYZ+si7uvd9SHBCKx2fFAiEA77bQGjTwXssgQNxLzqT4hbjkAqSYEW9F1cU3Je4KKuc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.12.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":467369},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"ed6b14851cf28eec4e4506d03f1b4dd3877e14e0","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.12.2_1776085870140_0.8783018268322538","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@yawlabs/mcp-compliance","version":"0.13.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.13.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"3200af98b3f86fd02155f7dd68f9295f78e80d68","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.13.0.tgz","fileCount":10,"integrity":"sha512-zs/5OJSEB8gvcUoz/8sfO/4BQiV1+yo5BH2Gfp0UosmSB/gH1TRfVxwI35C7Oruh323yp2je8gFPcV+NgSIq0Q==","signatures":[{"sig":"MEQCIEt3lb4gscxChwhj+//NkYAptFmtiqvxkd7iGeJGOu9wAiAqAnp0hkusnK5He8incOxY8G61y9REIonBA886TT9eeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":467960},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"d6e7bd4bbeaaadd6ef766efba2f6bad75a7f6cf5","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.9.7","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.13.0_1776136117799_0.9938494929550317","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@yawlabs/mcp-compliance","version":"0.13.1","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.13.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"5a013a93820c011e8c9d9e87b0ffe80197ee330c","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.13.1.tgz","fileCount":10,"integrity":"sha512-51k17TCnzFyGUdDVwnqltLY5cAFx9yNq02yqWfaFZuCfjLpPxozWrpOcy2fzbNG0aIk6o+33/MJ6BAT5hFaXIw==","signatures":[{"sig":"MEQCIERm68cK63oh/YH0+lC5GWPRlvZJBaubSLXkpOh4sfFAAiBEjkY1Zy5fLypAO9yifpgE2hi3p/V+Ffa/xbiFiL1nig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":471229},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"ffa108aef28934bba2262140ab063951e879ffc9","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.13.1_1776357895872_0.5926527797217134","host":"s3://npm-registry-packages-npm-production"}},"0.13.2":{"name":"@yawlabs/mcp-compliance","version":"0.13.2","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.13.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"9d9370bdf655cb0ab36d49db22223d94fcc50877","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.13.2.tgz","fileCount":10,"integrity":"sha512-LKHzOrJUJWHqVpOiNIpsA0CnuSHi7px/KB45FDwlrPb5I4PUCGwTLO7KXfgCLpCQTG/N/dFBb3MI5dTW6Rb8Mw==","signatures":[{"sig":"MEUCIQCCQGyN0vz5Wei7ostCwO15PGSShIqHCFmDQSfBAhdXDgIgMnZzp/iJR4v/XERk0qMLMgTRKZaM4T8BuHz9V1qkCeM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":473077},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"72d0ce57e1755d23176b3cd63c680fe28ef41102","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.13.2_1776371243014_0.8107582424195199","host":"s3://npm-registry-packages-npm-production"}},"0.13.3":{"name":"@yawlabs/mcp-compliance","version":"0.13.3","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.13.3","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"f5f411a76e8a9d070abcba0ade604732c0a525a0","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.13.3.tgz","fileCount":10,"integrity":"sha512-8iTrRELFwAFJz6QpES9NZjjBIEGlZ7dmt3gJnPPmbR92ER4DhbiTeCKgSwp6zZdYjSUJQ/oRJ7N3l2Lp/teq5g==","signatures":[{"sig":"MEQCIHRhX1Hescu196E7CM5T/lwrdHqPwZojTMKcmtrAjW7NAiAm0tPVwnTcwOAw/o5LuHZVXP+onh+KjcqEPMhIpJv2Pg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":473777},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"45785b3c745f3c1ef8fbee169883b8cbfefee154","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.13.3_1776379362813_0.3183110152032409","host":"s3://npm-registry-packages-npm-production"}},"0.13.4":{"name":"@yawlabs/mcp-compliance","version":"0.13.4","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.13.4","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"045c280c1216fe169f820e91073e6be5aa1a37c9","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.13.4.tgz","fileCount":10,"integrity":"sha512-TW3k6iYqGohi1WhG+5EExim4a76efxRavYU1Ok5VVdaS65SRFHh293g0bAY12KJzTRzs7qG94XmNcb6tqEpnfA==","signatures":[{"sig":"MEYCIQCi+pRlH2EPHUY7lGPMqClU2oo0Fitr9CKTNjFfPYJR8QIhAOZ6JxTrb9EFchfUc/t9ZzpLtyUev7KAVu3Xj6aYiSrD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.13.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":475932},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"e0b14b1df4db58ddad9edfe3adcca81611933f21","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.13.4_1776399253573_0.8506052904681851","host":"s3://npm-registry-packages-npm-production"}},"0.13.5":{"name":"@yawlabs/mcp-compliance","version":"0.13.5","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.13.5","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"2291246d8233a4a90aeea2f9a40197d8f309d0d8","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.13.5.tgz","fileCount":10,"integrity":"sha512-a1oj/fS3G8vFc73olACWcf68ZG+0T1HG+evMz6+ewvJIRZrXC5VS8nvqBNGZTq2Th3+UmTDJYYGRpAGnPNQSow==","signatures":[{"sig":"MEQCIAOVu3+AKYIc3pSXQ46gcw72OvFIXktYwGdLxGYCXz8rAiB1zaBmpB3BM2aeeMRLzZhNsNTU91x6kopg1nLvBkS8sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.13.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":479976},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"0934787af72e9054c13766944a0458b6b412e18f","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.13.5_1776400628496_0.3990573506584516","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@yawlabs/mcp-compliance","version":"0.14.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.14.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"842cdee03cc75c46d6bcbdeaeb7f4acf25984620","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.14.0.tgz","fileCount":10,"integrity":"sha512-PCCcBn0wECSsyDYZ7V+0pIkc1ffuPLZqopWwa9WpSupsDk88ChtWYvsffQtSsvMenf+5ACO4ldKD8qJnAJ8hvg==","signatures":[{"sig":"MEUCIDyjwp7UfuMqRGH0MttMH9dJ8EvlyY1MfmaNUidfxgMqAiEA+OFsC1ZS7YLJjUeePN22Yl5QoxHo+LHexne8MNTFLKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":480028},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"b91f4071e57bcfac3e1a3e548c960ca6195c8581","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.14.0_1776622107816_0.6358040288075049","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"@yawlabs/mcp-compliance","version":"0.14.1","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.14.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"d5f50724ce2dd08b162166c357880b891d4bb85b","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.14.1.tgz","fileCount":10,"integrity":"sha512-noj7mBvNPB4Q+kHRTqfwRmdR/CS1qUtE8pgKSJnpxUiBIgAALptI9PJfLWwXk8Ns3U9WQCnSA8A9tHgIroA6Fg==","signatures":[{"sig":"MEUCIQDwM3c+vi7+lOl/DU5sfPUbuaswqCrOrJPBy4XyXpZZ7gIgZmnO9yuTHweJRC8NahV26L9E4t/QIxy3SOYTiUddVi8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":480460},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"1f091d9fb9e0b13a3b928370ea48a128ab9fea03","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.14.1_1776625016615_0.7998857354714113","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"@yawlabs/mcp-compliance","version":"0.14.2","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.14.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"d30cf8575ffc62859ae8da79823491332c353110","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.14.2.tgz","fileCount":10,"integrity":"sha512-s6V5k+v4AYfkYwJcUW5Wl6TDmNeSaE+91WPZ5jcW2ACIB0sShnkXNFGXkgiQN6TEel8GQ0A1TXLNqL5WM/ZugQ==","signatures":[{"sig":"MEUCIQCadBuxeKI4IYkNRKZwHVjhZ3GJBmympgfa0q/l2PnK5wIgHSx8vdMkF7p3OguwZ37SrSAWMeptmvWu4kTbSqp/jBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fmcp-compliance@0.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":480987},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"ab525b11c7168c0c27799cff4df07c9bf0a46149","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.14.2_1778869603015_0.5970894285880437","host":"s3://npm-registry-packages-npm-production"}},"0.14.3":{"name":"@yawlabs/mcp-compliance","version":"0.14.3","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.14.3","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"4c016ab3a29469fca845ffaf4b3550545b93aa60","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.14.3.tgz","fileCount":10,"integrity":"sha512-B+bhsXEiv9zzeFRZeDcHOs+Aj5e1usReRbZH+1dzIht506fYbGSQn/rUkP73zaJt3lNgJxw2gFFHSZKKhp1YCA==","signatures":[{"sig":"MEYCIQCAZZPe97rPyx9kJ4BxqEDQXBT8WBt396WHVPru+4GWMwIhALPT51szG6MAzA+xlRugsXiWXh6v3Idaz7zI1n9LMeyA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":481027},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"ae4b48b7ed841ea9b08867af8013f44a6476a3bb","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.14.3_1780001442959_0.4402822467802179","host":"s3://npm-registry-packages-npm-production"}},"0.14.4":{"name":"@yawlabs/mcp-compliance","version":"0.14.4","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.14.4","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"efe0bd1ba29b2deea5253c340b6d6b5a8b7177be","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.14.4.tgz","fileCount":10,"integrity":"sha512-v3Hxr+aVjTJl0rBUBTclvkDt7+Mww5P80AfuhvQp7iqMMo95Za9Lc3F4kIftxBh2kU/UwpSSjlqd+1iKSnRxXQ==","signatures":[{"sig":"MEUCIEB6ni1gHAWHNnDmvMXUfdogXviG5bm+KM+94j9wC1KuAiEAvp2k7SS+qU+kJLXF3GkctMxoSKIsr53uDfvvNU7E8EQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":482130},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"8949eda74c7f58a8f520e34b5df4f5bbf7e08668","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.4","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.14.4_1780454224757_0.7060300167787459","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@yawlabs/mcp-compliance","version":"0.15.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.15.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"5bd3553af9be878b16983751ca7b75493e6d3b34","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.15.0.tgz","fileCount":10,"integrity":"sha512-PvCXHa0RVW+FHch3XxxFdTTQMsLBJw4aTfQeVjHrX31KIGUWk47ASkXkeaDHXl2JJmVKpHJCtwAlj6koqTa6Sw==","signatures":[{"sig":"MEUCIQCjU57SB12R8ujPhE8WycFYqH6xj592A7kWKqgGspRJqwIgb4XVABLNvlEZyUOq7Fu8OgZwSBvi0GrPQHlyWDiqFOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":483206},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"ba1f1fd2a1b54bd7b13c6525c8330badcf9f15d2","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.15.0_1780857196974_0.34323862322821896","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@yawlabs/mcp-compliance","version":"0.15.1","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.15.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://mcp.hosting","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"c84c688cedb19d1f011a3d1371da7ee7a74ec6e1","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.15.1.tgz","fileCount":10,"integrity":"sha512-17A5TwJAQt96adyIN9i8pn5ATNexIDm2T6iBEmpSPSwxDNXWRZnVYbDSm4AR+BuvlEfCmQv3EzR/qT/WT7I64w==","signatures":[{"sig":"MEYCIQD2CcwEnFBEkQrfFAJT27NYlZ0nh/cAE/6G0jH88k3meQIhAMsXcciKLw3z0KV0T5EfmTCWOKlRBxdVaRM+x6xiua0u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":483526},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"c23fbc2c1eaf9d9f05ed7d909ea578e5ac33766a","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.15.1_1780859117483_0.08792792313047793","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"@yawlabs/mcp-compliance","version":"0.16.1","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.16.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/mcp-compliance","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"9ffd7b1bfba55087a0924c3e3e53fec3669fa737","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.16.1.tgz","fileCount":10,"integrity":"sha512-lV3dsQyg0/ayTZaQyAnJeal2+B+HoBXiMOtiqw3mj1D+ELZl1l5Z2UZlxEhQzjhKZ0RH0sc10UsyPSGDmBHiXQ==","signatures":[{"sig":"MEUCICA93PReDBbkzUvycGdF++burxV8yhuq220wa84Z57x1AiEA2zv7GMDcLz4A4GXM+p/ojJWO6ZWhz7igSNgxLxxzrOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":463100},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"61aea00d7e99cc5af99ed81290187378b7f7f352","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^7.8.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.21.0","tsup":"^8.4.0","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.16.1_1781180106985_0.25361870298443545","host":"s3://npm-registry-packages-npm-production"}},"0.16.3":{"name":"@yawlabs/mcp-compliance","version":"0.16.3","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.16.3","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/mcp-compliance","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"18e0dc3a3a79fa107216e678f7a78b25cb5dac8f","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.16.3.tgz","fileCount":10,"integrity":"sha512-9hPIr5oPLv1iyUJ/i8q1H0yeeRiqbBQ8BudmzjfxEe0ucTHG4XseejeGAssFCYHBY431qe1eO5w5lRlBTPj4vw==","signatures":[{"sig":"MEUCID9Ke+BU7x5Sk2t/SvrqjN81Q07X23Je5mkejGIehwV0AiEAxysFnvJXFX/y3PC3M0N44NRMCaGtcLf+ne9mG35vxTQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":463453},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"65c138961940b9d6bbba7e79cffdb0ad2700270f","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^7.28.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.8","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.16.3_1781875905464_0.7943829324183072","host":"s3://npm-registry-packages-npm-production"}},"0.16.4":{"name":"@yawlabs/mcp-compliance","version":"0.16.4","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.16.4","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/mcp-compliance","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"dist/index.js"},"dist":{"shasum":"426eac9191d3f3a1a57af255145f332584c43387","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.16.4.tgz","fileCount":10,"integrity":"sha512-7o4zVVfKRdbgA0eAYHLAUbeXCmKhQQqRnlRIlNzRHhE7NUm5myoPv5dvzY2WN/1WHB4Bhh1u0lJXvQ33nwGmuw==","signatures":[{"sig":"MEQCIAaqnWaEN8MmXQt4I93LPUnz8rlYkPhGiOvcNFw+9wqJAiBGsl8v4eAmocQeBaoEomI7oimcNV6MTMB/LGlxeDF95Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":463298},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"7056b9ccf3f57f3720cf2ef30e543f5642fac1d0","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.7.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.8","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.16.4_1784676329684_0.6184811004046389","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@yawlabs/mcp-compliance","version":"0.17.0","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.17.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/mcp-compliance","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"a243779737c6487b985e2203601cd37eb0653a44","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.17.0.tgz","fileCount":11,"integrity":"sha512-mNFGctSv0faN0bbJM2ky+b4m9maTYG3KvjDmvUTtveYGeg9VUdW5Rn9pjZ2qJ2QzlKVDwnqhkcfj8EAKZxOJ4A==","signatures":[{"sig":"MEQCIBb82OJhOvlKkVmDSHYpkytUHafp5Fa9qe5Ww9r3NG29AiBLAfG/9z83cLzblCGpQIQJFNljkvNSpVObDuyWV1eHKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473478},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"a69cb13324a76e8d6f7a241eecb7a8d4574c9f0c","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.7.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.8","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.17.0_1786233096247_0.7805448626653817","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"@yawlabs/mcp-compliance","version":"0.17.1","keywords":["mcp","model-context-protocol","compliance","testing","cli","mcp-server","spec","validation","json-rpc","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.17.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/mcp-compliance","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"abb8cf9bbbb2854995055db9377d36f0c76e0be2","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.17.1.tgz","fileCount":11,"integrity":"sha512-uy/FxtEyHdDLm8SZrJTAxw7ZtwzSPitXYK3tcE4xSLZvXCVEs4wa0gZ8oQIlwPCceGlbRvl+aicAOZmVRRGv+A==","signatures":[{"sig":"MEUCIHlF66YOa2XYv6NAzkf7tkcA7DXA1y669n2m2ZmtJM6/AiEA/O7dmRkgSNF8GKKZiOJ0ZepphHYZT9eZpwpIgbYHuCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":480539},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"6e2cc8e8f239c4b99d005c47c8a1a3159756ac13","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"CLI tool and MCP server that tests MCP servers for spec compliance","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.7.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.8","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.17.1_1787505081676_0.9031628344586755","host":"s3://npm-registry-packages-npm-production"}},"0.17.2":{"name":"@yawlabs/mcp-compliance","version":"0.17.2","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.17.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"535d2a0d52fc110d1c24394f416c81b058410adf","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.17.2.tgz","fileCount":11,"integrity":"sha512-c/+Ml9GQVSwtXAOpYCfi+GCZ4RyxvjWtLhuqvWKeHmlR93lw80+fH9cn6QH+7I21UXteDeTC32pFeNDwmxXt4g==","signatures":[{"sig":"MEQCIFOtqLBotJrP7vkQFzpvxARMBJ8sLMnDFwuxH0bB6tjkAiBmffQJFEWgETOucc2Yimrp8QFX3H2v8Eku5VNyYi/4TQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC/W1DG75eZZHl9qhkLVe4PMgXhf05v+xZJR2f3OsbdDAIhAOIRSvmcPk77umbKZO796bDmon8JjlX6mbxOEIkF7Hz5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":480934},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"bd5611e5022d66c33754c2d7cdc5725f3af3ee70","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP compliance testing: 88-test spec suite for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.7.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.8","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.17.2_1789183822058_0.8353313487352092","host":"s3://npm-registry-packages-npm-production"}},"0.17.3":{"name":"@yawlabs/mcp-compliance","version":"0.17.3","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.17.3","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"4ee1c155beb7e291633bcf3a4f3e94164041d408","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.17.3.tgz","fileCount":11,"integrity":"sha512-5nz5B6pl5Nb+g+YsvpJXPw+e7dqUfiuE41d3cQ5yN2OFajlYkYhY+GKuVTRD8VBScfKCMxfMFTbbZsO+Rxxecw==","signatures":[{"sig":"MEQCIELlM51YsVkbjrsvqrSs850JKzvqdvGSvunMYqDRxym8AiAy/H54P9AOxqllvULO++fxueD3u9e9IlSK+5vtPacPGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEYgw5VMl9BzrIbk9D5QSoTcIwN+cqx/67SnBE2KgJy2AiEAxi2wDrGaRdiDJBBVor7H/rLzSLnxreUshFBeqLfCUkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":483493},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"e34f7cc8fffc27f24e2f8898f4d50a57a0d44544","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP compliance testing: 88-test spec suite for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.7.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.8","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.17.3_1789272138101_0.2953097541533225","host":"s3://npm-registry-packages-npm-production"}},"0.17.4":{"name":"@yawlabs/mcp-compliance","version":"0.17.4","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.17.4","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"559f2c64dc0522b67fe9b6598ed0e51149312e3f","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.17.4.tgz","fileCount":11,"integrity":"sha512-Nd4/uzHCe5B+2OL/HOHMu6pNiG9/bP2YL6z7DUUQt7a7u3gu6wUAzZhDvFMPUlAkQqTK1CMLhmlAp3dJeroaFA==","signatures":[{"sig":"MEYCIQCd0BqH0QFqFJnuILtHGaSxXxZb0qldCVJTGT2FuxU4FgIhAOehj/UTzG29xVr49Pr4P+xiUqq36fki5+QHJ/Dw7b0+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCpbnSzXXQkqEoNq4VHL+vbZ/SGQao8EQalvcTdB8BrvwIgSTWSegC/1E6k2kZTX2MfL1WRZxQht6cnE2lXaPf4oQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":491025},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"a6d56a91684ae992c4ca87a6f8b3ea0ea718ec2a","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP compliance testing: 88-test spec suite for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.7.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.8","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.17.4_1789332326178_0.7902186394321191","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@yawlabs/mcp-compliance","version":"0.18.0","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.18.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"e09af0b7505524378f9cb4ebf848e3f39d48a0a6","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.18.0.tgz","fileCount":11,"integrity":"sha512-R/nEsgJINVGFEDhD1O4upLkdUnxwQRW3aXKid+B9W2E2G85iEwAO3iRoLqnSgEqWEMKzbq+AzhgBAz+XjPt1Bw==","signatures":[{"sig":"MEUCIAeFUg0byk9Kkvp4mOHBTpmd9bENSfJI6KY7llIYDRLUAiEAtA6aDVfwYJ+8EYCPXF5fJlhO6UadAhs/TdmZ9rUjO9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCKOIhQAzZbmvtMpJSEf6cIh8ubGL7XUY8Q3OwPa9R0GQIgNjep5pdkW10OGz3iz4AW/EG9bh1/fiTnAFz5gUdX3S4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":491026},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"3f76d3eff391efbf919057b6b7710b04ffb7350b","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP compliance testing: 88-test spec suite for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.7.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.8","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.18.0_1789358142269_0.41914063049452244","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"@yawlabs/mcp-compliance","version":"0.18.1","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.18.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"779ce9c6d1b9eeec9b9ca2c45fc94342eca21f67","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.18.1.tgz","fileCount":11,"integrity":"sha512-Qo/TvNF+NPFxO6w0NeuA6l+aTCwS+iXEwzZHi7VEfwRo8eM0b6ZFDDX5pysKPwLhS6hS2pMPJU+9f5I95CrqFA==","signatures":[{"sig":"MEUCIBGN1ssnIY+lY/Kz/RTfrc9Uw/mgfVPLYZ8pGB3TsFFPAiEA7P1PDX+5u20GoibF+1u4vo4HwdXuE6DdWREQZDCq75E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEOjPjuIa8OY89AlRsPM2OmzmTGxTwx5M2vsGQtiCmeqAiB5kiaAZd7mw4P+Lu4u5KHYDNC9HaIQahlyvpJmVUWJ5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":491043},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"cd50597c35a53a6b3349dbeb7bd11500dfe45a14","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP compliance testing: 88-test spec suite for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.7.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.8","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.18.1_1789396971634_0.4056319664718786","host":"s3://npm-registry-packages-npm-production"}},"0.18.2":{"name":"@yawlabs/mcp-compliance","version":"0.18.2","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.18.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"01d88fe28d9db48daee8dacbb7a8ae73e34c1c2c","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.18.2.tgz","fileCount":11,"integrity":"sha512-Rw7qFQKq9HX7Us8WORzZRF8HimwmnJvxdRBb3YbF6rbbopTgLmIUxeTC9sGj3A2+FjXgB8w3ltZJytsA+3DR5w==","signatures":[{"sig":"MEYCIQDxLcgILZOntXlM/+TiuoWFLMdc2u1zVZU2HtJKSwrL8wIhAMdLoePb/c8JRqkHH4/zMrWg3Iyh9MJMqkypDvMLH78H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGH4BP2aLU0VwZ9O6ml7Ov2llV2Lp2RJigItL2wNz+OfAiEAwhkaAqCp+GTgl9/OwZPf3M6Ko3s3PPtmEoH3qvl4M5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":491044},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"4b4068b2f7b972fa06e3d2c23d28b99c1cbe3127","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP compliance testing: 88-test spec suite for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.9.0","commander":"^14.0.3","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.18.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.11","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","ajv-formats":"^3.0.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.18.2_1789515748595_0.7237837520639334","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@yawlabs/mcp-compliance","version":"0.19.0","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.19.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"372b07a66880abd23c7725ed3c5a9ba2383fb815","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.19.0.tgz","fileCount":11,"integrity":"sha512-WrmebJ08d3eUwHc/Iy4vF/V9SgkCAhax0subDC3ROfzoa/t4lnkClhNGzhUnO17BcDHg4v6hqZhe+0AjEvzh3A==","signatures":[{"sig":"MEQCIBLrn66TBUukwbjmWr2ahHeHMVBZg44HMFohw4nEpfdNAiAzexPVLZEltWx+QgjoVOXzwABuS+cubbIecR5H8TKJsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDOXaw+gjFnBYppt9klJOycZHEmO4BPcBi2XkylfCLzwAIgPFc9SJhxvV5HMOny60DPpdu2CmtB90J9CTbrtqjIt5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1812686},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"5f900c18acba04121dd7cc66c222a054c67896df","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP compliance testing: spec suites for MCP 2025-11-25 (88 tests) and 2026-07-28 (103 tests), auto-detected per server, for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.20.0","zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.9.0","commander":"^14.0.3","ajv-formats":"^3.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.11","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","@biomejs/biome":"^2.4.16","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/server":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.19.0_1789723789640_0.5587405525999425","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@yawlabs/mcp-compliance","version":"0.20.0","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.20.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"bce1a6ea22af17c09d0fee25a9765a803287a1ca","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.20.0.tgz","fileCount":11,"integrity":"sha512-r8RIt9smxqKFRUuH6p3rU2UWQoiaPDFJrWaNDvN9Aseo8is6jy2XOfm1B+KMVKN5MOh5h6TWpLpro8nhRDpGqg==","signatures":[{"sig":"MEYCIQCDHruwX5uDN9ro57l3pceaRikulmao6kKm+0BWXjc8JwIhAL2ThbWfwWu8wIq5V9tNvFZPfoevK5B72C4yN9VYfhQI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICmMeD3/NbDlOmhwib2waWIzq3gzMfzqhjdgmreYZCQ8AiA/Pkf2do9e2W61d2nlYISzfluYVXs333ozkfkoPm1Q6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1887693},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"bb66922e6b9296789559f9eaa42d102aaca01be1","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP compliance testing: spec suites for MCP 2025-11-25 (88 tests) and 2026-07-28 (103 tests), auto-detected per server, for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.20.0","zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.9.0","commander":"^14.0.3","ajv-formats":"^3.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.11","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","@biomejs/biome":"^2.4.16","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/server":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.20.0_1789739564842_0.709188728105868","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"@yawlabs/mcp-compliance","version":"0.20.1","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/mcp-compliance@0.20.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"dist":{"shasum":"68b92da4510b9530831be77019a2ff9935edd8a6","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.20.1.tgz","fileCount":11,"integrity":"sha512-XHi8jlSo4MZis2LvHjf9WwnUgRclmJo1AgLCJu5kZ7SAHjmHGSB9zprojIj+0HLj1K0wsEO+ccjbWKrEhjDVIA==","signatures":[{"sig":"MEQCIEoqoy6+n5zgPQPYkeujDOSWioDrK9BHUIc+bsdDypk7AiBWzF3k5UeV/C5Vnth/pwhuQuYuCe9QzRrg3EO6mTuoyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC7Gx6ePgOs6e12LRksVerOIc0eShz+BZQC/ZWNWGbG9gIhALep5E0vAfp6Sbv8k+OG6jNYBIJwKO2wiKFiEzlp4Uro","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2012775},"main":"./dist/runner.js","type":"module","types":"./dist/runner.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"5abf45e57134feb768bcb8b6a08e1f0362fb9ee0","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP compliance testing: spec suites for MCP 2025-11-25 (88 tests) and 2026-07-28 (103 tests), auto-detected per server, for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.20.0","zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.9.0","commander":"^14.0.3","ajv-formats":"^3.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.11","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","@biomejs/biome":"^2.4.16","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/server":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-compliance_0.20.1_1789779036061_0.8683599168488356","host":"s3://npm-registry-packages-npm-production"}},"0.20.2":{"_id":"@yawlabs/mcp-compliance@0.20.2","bin":{"mcp-compliance":"bin/mcp-compliance.mjs"},"bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"dist":{"shasum":"56ac0466f477a8d10f9b54751073d3f23983177f","tarball":"https://registry.npmjs.org/@yawlabs/mcp-compliance/-/mcp-compliance-0.20.2.tgz","fileCount":11,"integrity":"sha512-ljO6geNrGOrfyoT4pYIdjcyUYrDjrKUyJFe+YgdykrVa4vmoQ47SOaI1lh37tvlZms8TJgqx9t2l7A656RtN6Q==","signatures":[{"sig":"MEUCICQM6KpH/2ewrIbTJMLiQQFjwMMMDvVLZBJPaaBabTR+AiEAyc60+Am1ZmXGZdmHCoi5FQl5pVGPyxLvHZ+Mo/QEiqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDPMJs+OtEofFkKsAqSY2wK8Cmc95SDW1vpXmaPc1ASuAIhAJ1CnJ2V6PrraCR/C6RiQ1hQm0e4dUAfqDFYDg+7TUov"}],"unpackedSize":2012754},"main":"./dist/runner.js","name":"@yawlabs/mcp-compliance","type":"module","types":"./dist/runner.d.ts","author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/runner.d.ts","import":"./dist/runner.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./schemas/*.json":"./schemas/*.json"},"gitHead":"76fe81dff724621c140ed1f56997fd5bcf29ba92","license":"MIT","mcpName":"io.github.YawLabs/mcp-compliance","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"version":"0.20.2","_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai","ai-agents"],"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP compliance testing: spec suites for MCP 2025-11-25 (88 tests) and 2026-07-28 (103 tests), auto-detected per server, for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","directories":{},"maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.20.0","zod":"^4.4.3","chalk":"^5.4.1","undici":"^8.9.0","commander":"^14.0.3","ajv-formats":"^3.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.11","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","@types/node":"^25.5.2","@biomejs/biome":"^2.4.16","@modelcontextprotocol/node":"^2.0.0","@modelcontextprotocol/server":"^2.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-compliance_0.20.2_1790714727953_0.288824604527566"}}},"time":{"created":"2026-04-06T14:00:37.865Z","modified":"2026-09-29T20:45:28.287Z","0.1.0":"2026-04-06T14:00:38.172Z","0.1.1":"2026-04-06T14:03:40.042Z","0.1.2":"2026-04-06T15:54:36.480Z","0.2.0":"2026-04-07T02:04:30.734Z","0.2.1":"2026-04-07T02:12:57.612Z","0.3.0":"2026-04-07T18:57:18.338Z","0.4.0":"2026-04-08T05:04:22.897Z","0.5.0":"2026-04-08T18:25:27.685Z","0.6.0":"2026-04-09T01:59:27.998Z","0.7.0":"2026-04-10T00:36:14.423Z","0.8.0":"2026-04-10T00:54:09.949Z","0.8.1":"2026-04-11T01:59:31.386Z","0.9.0":"2026-04-13T02:20:40.606Z","0.9.1":"2026-04-13T02:49:37.212Z","0.9.2":"2026-04-13T03:18:04.871Z","0.10.1":"2026-04-13T04:09:00.532Z","0.11.0":"2026-04-13T04:50:08.654Z","0.12.0":"2026-04-13T12:07:53.593Z","0.12.1":"2026-04-13T12:27:44.645Z","0.12.2":"2026-04-13T13:11:10.286Z","0.13.0":"2026-04-14T03:08:37.956Z","0.13.1":"2026-04-16T16:44:56.133Z","0.13.2":"2026-04-16T20:27:23.161Z","0.13.3":"2026-04-16T22:42:42.974Z","0.13.4":"2026-04-17T04:14:13.798Z","0.13.5":"2026-04-17T04:37:08.637Z","0.14.0":"2026-04-19T18:08:27.998Z","0.14.1":"2026-04-19T18:56:56.790Z","0.14.2":"2026-05-15T18:26:43.209Z","0.14.3":"2026-05-28T20:50:43.138Z","0.14.4":"2026-06-03T02:37:04.944Z","0.15.0":"2026-06-07T18:33:17.094Z","0.15.1":"2026-06-07T19:05:17.691Z","0.16.1":"2026-06-11T12:15:07.197Z","0.16.3":"2026-06-19T13:31:45.627Z","0.16.4":"2026-07-21T23:25:29.809Z","0.17.0":"2026-08-08T23:51:36.387Z","0.17.1":"2026-08-23T17:11:21.870Z","0.17.2":"2026-09-12T03:30:22.171Z","0.17.3":"2026-09-13T04:02:18.218Z","0.17.4":"2026-09-13T20:45:26.271Z","0.18.0":"2026-09-14T03:55:42.352Z","0.18.1":"2026-09-14T14:42:51.769Z","0.18.2":"2026-09-15T23:42:28.680Z","0.19.0":"2026-09-18T09:29:49.730Z","0.20.0":"2026-09-18T13:52:44.951Z","0.20.1":"2026-09-19T00:50:36.172Z","0.20.2":"2026-09-29T20:45:28.097Z"},"bugs":{"url":"https://github.com/YawLabs/mcp-compliance/issues"},"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","homepage":"https://yaw.sh/mcp-servers/mcp-compliance/","keywords":["mcp","model-context-protocol","mcp-server","mcp-testing","compliance","testing","test-suite","spec","validation","json-rpc","cli","ci","github-actions","sarif","security","stdio","claude-code","cursor","ai","ai-agents"],"repository":{"url":"git+https://github.com/YawLabs/mcp-compliance.git","type":"git"},"description":"MCP compliance testing: spec suites for MCP 2025-11-25 (88 tests) and 2026-07-28 (103 tests), auto-detected per server, for any MCP server over HTTP or stdio, with A-F grading, a CLI, an MCP server, and CI output.","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"readme":"# @yawlabs/mcp-compliance\n\n[![Add to Yaw MCP](https://yaw.sh/yaw-mcp-button.svg)](https://yaw.sh/mcp/install?name=mcp-compliance&command=npx&args=-y%2C%40yawlabs%2Fmcp-compliance&description=Test%20any%20MCP%20server%20against%20the%20spec%20%282025-11-25%20or%202026-07-28%29%20with%20letter-grade%20scoring&source=https%3A%2F%2Fgithub.com%2FYawLabs%2Fmcp-compliance)\n\nOne click adds this to your local Yaw MCP config so it's available in every Yaw Terminal session. Or install manually below.\n\n[![npm version](https://img.shields.io/npm/v/@yawlabs/mcp-compliance)](https://www.npmjs.com/package/@yawlabs/mcp-compliance)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![GitHub stars](https://img.shields.io/github/stars/YawLabs/mcp-compliance)](https://github.com/YawLabs/mcp-compliance/stargazers)\n\n**Test any MCP server for spec compliance.** Two test suites — 88 tests for MCP [2025-11-25](https://modelcontextprotocol.io/specification/2025-11-25) and 103 tests for MCP [2026-07-28](https://modelcontextprotocol.io/specification/2026-07-28) — covering transport, lifecycle, tools, resources, prompts, error handling, schema validation, and security. The tool probes the server and grades the newest spec revision it speaks, or you pin one with `--spec-version`. Works against **HTTP endpoints** (`https://my-server.com/mcp`) and **stdio servers** (`npx @modelcontextprotocol/server-filesystem /tmp`) alike. CLI, MCP server, and programmatic API.\n\nBuilt and maintained by [Yaw Labs](https://yaw.sh).\n\n## Why this tool?\n\nMCP servers are multiplying fast — but most ship without compliance testing. Broken transport handling, missing error codes, malformed schemas, and silent capability violations are common. Hand-rolling test scripts is tedious and incomplete.\n\nThis tool solves that:\n\n- **Two spec revisions, one tool** — 88 tests for MCP 2025-11-25 (the `initialize` + session era) and 103 tests for MCP 2026-07-28 (stateless, per-request `_meta`, `server/discover`, caching hints, MRTR). Both cover the same 8 categories: transport, lifecycle, tools, resources, prompts, error handling, schema validation, and security. HTTP-specific tests (CORS, TLS, header validation, rate limiting) are gated out on stdio: the 2025-11-25 suite runs 85 tests on HTTP and 55 on stdio, the 2026-07-28 suite 99 and 75.\n- **Auto-detected revision** — one `server/discover` probe tells the tool which era the server speaks; dual-era servers are graded against 2026-07-28 with a warning. Pin either revision with `--spec-version`. See [Spec version](#spec-version).\n- **Capability-driven** — tests adapt to what the server declares. If it says it supports tools, tool tests become required. No false failures for features the server doesn't claim.\n- **Graded scoring** — A-F letter grade with a weighted score (required tests 70%, optional 30%). One number to communicate compliance.\n- **CI-ready** — `--strict` mode exits with code 1 on required test failures. Drop it into any pipeline.\n- **Spec-referenced** — every test links to the exact section of the MCP specification it validates. No ambiguity about what's being tested or why.\n- **Three interfaces** — CLI for humans, MCP server for AI assistants, programmatic API for integration.\n- **Published methodology** — the [testing methodology](./COMPLIANCE_RUBRIC.md) and [rule catalog](./mcp-compliance-rules.json) are open (CC BY 4.0) so anyone can build compatible tooling or fork the rules.\n\n## Quick start\n\n**Remote HTTP server:**\n\n```bash\nnpx @yawlabs/mcp-compliance@latest test https://my-server.com/mcp\n```\n\n**Local stdio server** (the vast majority of MCP servers on npm):\n\n```bash\n# Pass the command directly, Inspector-style\nnpx @yawlabs/mcp-compliance@latest test npx @modelcontextprotocol/server-filesystem /tmp\n\n# Or a local build\nnpx @yawlabs/mcp-compliance@latest test node ./dist/server.js\n\n# With env vars\nnpx @yawlabs/mcp-compliance@latest test -E GITHUB_TOKEN=$GITHUB_TOKEN -- npx @modelcontextprotocol/server-github\n```\n\n**Install globally:**\n\n```bash\nnpm install -g @yawlabs/mcp-compliance\nmcp-compliance test https://my-server.com/mcp\n```\n\nThat's it. You'll get a colored terminal report with a letter grade (A-F), per-test pass/fail, and a compliance score.\n\n## CLI usage\n\n### HTTP targets\n\n```bash\n# Terminal output with colors and grade\nmcp-compliance test https://my-server.com/mcp\n\n# JSON / SARIF for scripting + GitHub Code Scanning\nmcp-compliance test https://my-server.com/mcp --format json\nmcp-compliance test https://my-server.com/mcp --format sarif > compliance.sarif\n\n# Strict mode for CI — exits 1 on required-test failure\nmcp-compliance test https://my-server.com/mcp --strict\n\n# Auth (shorthand or full header)\nmcp-compliance test https://my-server.com/mcp --auth \"Bearer tok123\"\nmcp-compliance test https://my-server.com/mcp -H \"X-Api-Key: abc\"\n\n# Focus the run\nmcp-compliance test https://my-server.com/mcp --only transport,lifecycle\nmcp-compliance test https://my-server.com/mcp --skip prompts,resources\nmcp-compliance test https://my-server.com/mcp --verbose\n```\n\n### stdio targets\n\nPass the command and its args as positional arguments (MCP Inspector-style). Use `--` to disambiguate when the target needs flags that collide with ours.\n\n```bash\n# npm-distributed stdio servers\nmcp-compliance test npx -y @modelcontextprotocol/server-filesystem /tmp\nmcp-compliance test uvx mcp-server-git\n\n# Local build\nmcp-compliance test node ./dist/server.js\n\n# With env vars (repeatable -E, or --env-file)\nmcp-compliance test -E API_KEY=secret -E REGION=us-east-1 -- npx my-server\nmcp-compliance test --env-file .env -- node ./server.js\n\n# Set working directory\nmcp-compliance test --cwd ./services/mcp -- node ./dist/server.js\n\n# Target uses a flag that collides with ours — use `--` to separate\nmcp-compliance test --verbose -- node ./server.js --verbose\n```\n\nOn Windows, `npx` and other `.cmd` shims are handled automatically by spawning through the shell.\n\n### Spec version\n\nThe tool ships one test catalog per MCP specification revision it supports — **2025-11-25** (88 tests: `initialize` handshake, sessions, `ping`) and **2026-07-28** (103 tests: stateless, per-request `_meta`, `server/discover`, caching hints, MRTR). A run grades exactly one revision, chosen by `--spec-version`:\n\n```bash\n# auto (default): probe the server, grade the newest revision it speaks\nmcp-compliance test https://my-server.com/mcp\n\n# pin a revision — no probe, the named catalog runs regardless of what the server answers\nmcp-compliance test https://my-server.com/mcp --spec-version 2026-07-28\nmcp-compliance test https://my-server.com/mcp --spec-version 2025-11-25\n\n# --list never connects: under auto (the default) it prints every catalog in its own\n# section; --spec-version <date> previews just that one\nmcp-compliance test --list --spec-version 2026-07-28 --transport stdio\n```\n\nHow `auto` decides, following the spec's own rules for dual-era clients: the tool sends one conformant 2026-07-28 `server/discover` (on HTTP it doubles as the preflight connectivity check, so detection costs no extra round-trip; on stdio it is the first exchange). A `DiscoverResult`, or a JSON-RPC error with a modern code (`-32020`, `-32021`, `-32022`), selects **2026-07-28**. Anything else — `-32601`, `-32000`, a 400 \"not initialized\", a 404, an HTML page, or no reply within the timeout — selects **2025-11-25**; a 401/403 with no modern error body also lands on 2025-11-25, the note says the era could not be determined, and the report's **first** warning (in every output format) says the grade below is not meaningful. With no `Authorization` header configured, a 401, or a 403 carrying a `WWW-Authenticate: Bearer` challenge, reads as authentication required (note `authentication required -- pass --auth`; the warning says to re-run with `--auth`). With one configured, a 401, or a 403 whose Bearer challenge carries an `error` parameter, reads as the credential rejected (note `credential rejected -- check --auth`; the warning names the reason from that error, e.g. `invalid_token` is an invalid or expired token and `insufficient_scope` a missing scope or permission). Any other 403 (the SDK's Host validation behind a tunnel hostname, Origin validation, a gateway) is worded neutrally with or without a header: the note says `forbidden -- Host/Origin validation, a gateway, or missing credentials` (or `... or token permissions` with a header), and the warning quotes the body's JSON-RPC error message when there is one, points at Host/Origin validation and any gateway first, and without a header suggests `--auth` only if the server does require a credential. The fallback is deliberately not keyed to a single error code; a legacy server that ignores unknown methods is still classified correctly, just after the timeout. The report header names the reason (`auto-detected from server/discover: supportedVersions [2026-07-28]`, `... JSON-RPC error -32601, legacy`, `... no response, legacy`) and the JSON `warnings` carry the same note (`Spec version auto-detected as <v> (server/discover -> <reason>). Pin with --spec-version to override.`). An unreachable server is graded as 2025-11-25 so every test that needs the server fails (the 2026-07-28 post-hoc scans fail too when nothing was received, rather than passing over an empty recording).\n\nTwo budgets bound the probe. On **stdio** it is bounded by `--startup-timeout`, and in terminal mode a dim status line appears on stderr after ~2 s naming the wait and the `--spec-version 2025-11-25` skip, so a legacy server that stays silent on unknown methods does not look like a hang. If the child exits on the probe (a legacy server whose dispatcher throws on unknown pre-`initialize` methods), the report warns with the exit code and stderr tail, spawns a fresh instance and grades it as 2025-11-25. If the fresh instance exits at startup as well, before answering `initialize`, the warning says the server exits at startup regardless of the probe and points at the command, its arguments and its environment instead of suggesting a pin. `benchmark` re-spawns a probe-killed child the same way, bounds its probe by its own `--startup-timeout`, prints the same status line, and carries the warning in its output. On **HTTP** the probe is the preflight and is bounded by `--preflight-timeout`; a preflight that times out is re-probed once within `--startup-timeout` before the run defaults to 2025-11-25, so a slow cold start is graded in its real era instead of as unreachable.\n\nA server that answers both eras (the default for servers built on the official SDK 2.0) is graded as **2026-07-28**, and the report carries a warning naming the other era and how to pin it — keyed on `supportedVersions` listing 2025-11-25 *or* on the informational `lifecycle-dual-era` probe being served an `InitializeResult` (SDK 2.0 servers advertise only modern versions yet still serve `initialize`; on stdio that probe goes to a fresh process, since a dual-era server pins its era per process). To grade its legacy side too, run again with `--spec-version 2025-11-25`. A server that serves `initialize` while *rejecting* the conformant `server/discover` is not dual-era but legacy-only: `lifecycle-dual-era` says `legacy-only: ...` and the warning tells you to re-run with `--spec-version 2025-11-25` (or `auto`). The report's `specVersion` is always the **resolved** revision, never `auto`.\n\nA pinned run runs the named catalog whatever the server answers, with two honest side notes. On HTTP the preflight is still a modern `server/discover`, so a pinned run whose server plainly answered in the *other* era gets a warning (`Server answered the 2026-07-28 server/discover probe with a DiscoverResult ...; this run is pinned to 2025-11-25. Re-run with --spec-version 2026-07-28 (or auto) to grade it`). The warning needs an era signal -- a `DiscoverResult`, a JSON-RPC body or an HTTP 4xx; a 5xx or an HTML page says nothing about the era and draws none -- and a dual-era server whose `supportedVersions` lists 2025-11-25, pinned to 2025-11-25, is told `Server is dual-era (...); this run grades its 2025-11-25 side.` instead of being sent to the other pin. And a legacy-only server pinned to 2026-07-28 fails `lifecycle-discover` *and* the six `_meta` / standard-header rejection tests as **not evaluable**: a server that rejects the conformant `server/discover` proves nothing by also rejecting a malformed variant, so those required tests are failed rather than credited.\n\nTwo things to know when you rely on `auto` in CI:\n\n- **The grade can move without a config change.** The day your server upgrades to an SDK that speaks 2026-07-28, `auto` switches suites: different test ids, different required set, a new baseline. Pin `--spec-version` (or `\"specVersion\"` in the config file) if you want the suite to change only when you say so.\n- **`diff` refuses to compare reports from different revisions** (ids are only comparable within one catalog) and tells you which `--spec-version` to pin. SARIF uploads are tracked per revision (`automationDetails.id` is `mcp-compliance/<specVersion>/`), so a switch opens a fresh set of alerts rather than closing the old ones silently.\n\n`--only` / `--skip` values are matched against the catalog that was resolved; a value that matches nothing in it (say `lifecycle-init` on a 2026-07-28 run) is reported as a warning instead of silently producing an empty run, and an empty run prints `No tests ran -- check --only/--skip` rather than `All tests passed`. In the 2026-07-28 suite a filtered run still measures the server: the `tools/list` / `resources/list` / `prompts/list` results that a filtered-out feature test would have cached are fetched once on demand by whichever test needs them, so `--only security`, `--only schema` or `--only lifecycle` exercise the real checks instead of skip-passing. When such a list call fails and its `-list` test is filtered out, the checks that needed the list fail with the recorded reason (`tools/list failed (JSON-RPC error -32603 (boom)); no tools list to validate`) rather than grading A over a broken list. An `--only` value that matches only tests gated off the target transport (`transport-post` on a stdio server) is warned about too, and `--list` prints the same warnings under each catalog it lists.\n\n### Options\n\n| Option | Applies to | Description |\n|--------|-----------|-------------|\n| `--spec-version <v>` | both | MCP spec revision to grade: `auto` (probe the server, newest wins), `2025-11-25`, or `2026-07-28` (default: `auto`, or `specVersion` in config). See [Spec version](#spec-version) |\n| `--format <format>` | both | Output format: `terminal`, `json`, `sarif`, `github`, `markdown`, or `html` (default: `terminal`) |\n| `--config <path>` | both | Load defaults from a config file (default: `mcp-compliance.config.json` in cwd) |\n| `--output <file>` | both | Write a local SVG badge to the given path after the run |\n| `--list` | both | Print test IDs that would run given current filters, then exit (no connection; with `--spec-version auto`, the default, every catalog is listed in its own section, and `--spec-version <date>` previews one) |\n| `--transport <kind>` | both | Filter by `http` or `stdio` (only used with `--list` when no target is provided) |\n| `--strict` | both | Exit with code 1 on any required test failure (for CI) |\n| `--min-grade <grade>` | both | Exit with code 1 if grade is below this threshold (`A`–`F`) |\n| `-H, --header <h>` | HTTP | Add header to all requests, format `\"Key: Value\"` (repeatable) |\n| `--auth <token>` | HTTP | Shorthand for `-H \"Authorization: <token>\"` |\n| `-E, --env <var>` | stdio | Set env var for stdio command, format `\"KEY=VALUE\"` (repeatable) |\n| `--env-file <path>` | stdio | Load env vars from a file (one `KEY=VALUE` per line) |\n| `--cwd <dir>` | stdio | Working directory for the stdio command |\n| `--watch` | stdio | Re-run the suite whenever a file under the current directory changes (500 ms debounce; ignores `node_modules`, `.git`, `dist`, `coverage`, build caches and log/swap/temp files) until Ctrl+C. stdio targets only, and only with `--format` `terminal`, `markdown` or `html`; `--strict` and `--min-grade` do not apply |\n| `--timeout <ms>` | both | Per-request timeout in milliseconds after the initial exchange (default: `15000`) |\n| `--startup-timeout <ms>` | both | Budget for the server's first reply: the stdio era probe under `auto`, the 2025-11-25 `initialize` handshake on either transport, and on HTTP the second era probe sent when the preflight times out (default: `max(--timeout, 60000)`; covers cold `npx` cache fetches before a stdio server starts) |\n| `--preflight-timeout <ms>` | HTTP | Deadline for the preflight `server/discover` request, which under `auto` is also the era probe; a timeout here re-probes once within `--startup-timeout` before the run defaults to 2025-11-25 (default: `min(--timeout, 10000)`) |\n| `--retries <n>` | both | Number of retries for failed tests (default: `0`) |\n| `--only <items>` | both | Only run tests matching these categories or test IDs (comma-separated) |\n| `--skip <items>` | both | Skip tests matching these categories or test IDs (comma-separated) |\n| `--concurrency <n>` | both | Max parallel-safe tests in flight (default: `1`; raising reduces wall time but can perturb timing-sensitive servers) |\n| `--verbose` | both | Print each test result as it runs, as PASS, FAIL or SKIP (also forwards stdio stderr) |\n| `--no-color` | both | Disable colored output (the `NO_COLOR` environment variable does the same) |\n\n### CI integration\n\n**GitHub Action** (drop into any `.github/workflows/*.yml`):\n\n```yaml\n- uses: YawLabs/mcp-compliance@v0\n  with:\n    target: 'node ./dist/server.js'   # or a URL like https://my-server.com/mcp\n    format: github                     # ::error per required failure, ::warning per optional failure and per report warning, ::notice summary with the spec version\n    strict: 'true'                     # exit non-zero if any required test fails\n    min-grade: 'A'                     # also exit if grade slips\n    spec-version: auto                 # or pin 2025-11-25 / 2026-07-28; the resolved value is the `spec-version` output\n```\n\n**Manual CLI invocation:**\n\n```bash\n# GitHub Actions: ::error per required failure, ::warning per optional failure and per\n# report warning, and a ::notice summary naming the grade and the spec version graded\nmcp-compliance test https://my-server.com/mcp --format github --strict\n\n# Slack/Linear/PR comment: drop the body straight into a comment\nmcp-compliance test https://my-server.com/mcp --format markdown > report.md\n\n# HTML report (self-contained, share anywhere — issue comments, S3, GitHub Pages)\nmcp-compliance test https://my-server.com/mcp --format html > report.html\n\n# Block release if grade slips below B\nmcp-compliance test https://my-server.com/mcp --min-grade B\n\n# Preview which tests will run before connecting (handy for --only/--skip authoring)\nmcp-compliance test --list --transport stdio --skip security --spec-version 2026-07-28\n\n# Diff two runs — exit 1 if anything that was passing (or skipped) is now failing;\n# checks that start or stop skipping are listed as \"Newly skipped\" / \"No longer skipped\" and never fail the diff.\n# A baseline from an earlier version works too: its skips are read from their wording, and both\n# reports are scored from their results as this version scores them (skips left out).\n# Both reports must grade the same spec revision; pin --spec-version on both runs\n# so a server upgrade cannot flip the suite under the baseline.\nmcp-compliance test https://my-server.com/mcp --format json --spec-version 2026-07-28 > current.json\nmcp-compliance diff baseline.json current.json\n\n# Watch mode for stdio dev loop — re-runs on file changes in cwd\nmcp-compliance test --watch -- node ./dist/server.js\n\n# Latency benchmark (--spec-version and --startup-timeout work as for test)\nmcp-compliance benchmark -- node ./dist/server.js -r 200 -c 4\n```\n\n**Docker:**\n\n```bash\ndocker run --rm ghcr.io/yawlabs/mcp-compliance test https://my-server.com/mcp\n```\n\n### Scaffold a config\n\n```bash\nmcp-compliance init\n```\n\nInteractive prompts walk you through transport (http/stdio), command/url, env vars, timeout, and strict mode — then write a `mcp-compliance.config.json` you can commit.\n\n### Config file\n\nCheck in a `mcp-compliance.config.json` so CI and your dev loop can run `mcp-compliance test` with no arguments. Supported locations (searched in order): `mcp-compliance.config.json`, `.mcp-compliancerc.json`, `.mcp-compliancerc`, and the `\"mcp-compliance\"` field of `package.json`. Pass `--config <path>` to load an explicit file.\n\n**HTTP:**\n\n```json\n{\n  \"target\": {\n    \"type\": \"http\",\n    \"url\": \"https://my-server.com/mcp\",\n    \"headers\": { \"Authorization\": \"Bearer tok123\" }\n  },\n  \"timeout\": 20000,\n  \"specVersion\": \"2026-07-28\",\n  \"strict\": true\n}\n```\n\n**stdio:**\n\n```json\n{\n  \"target\": {\n    \"type\": \"stdio\",\n    \"command\": \"node\",\n    \"args\": [\"./dist/server.js\"],\n    \"env\": { \"LOG_LEVEL\": \"error\" }\n  },\n  \"skip\": [\"security\"],\n  \"strict\": true\n}\n```\n\nPrecedence: CLI flags > config file > defaults. Any field can be overridden on the command line. `specVersion` accepts `auto`, `2025-11-25` or `2026-07-28` and is new in 0.19 — a config that sets it is rejected as an unknown key by older tool versions (0.18.x included), so pin `@yawlabs/mcp-compliance@^0.19` wherever that config is consumed.\n\n### Local SVG badge\n\nWrite a local SVG reflecting the real grade and commit it to your repo:\n\n```bash\nmcp-compliance test https://my-server.com/mcp --output badge.svg\nmcp-compliance test node ./dist/server.js --output badge.svg\n```\n\nThen embed it in your README:\n\n```markdown\n![MCP Compliance](./badge.svg)\n```\n\n## What the 88 tests check (2025-11-25)\n\nThe 2025-11-25 catalog grades the `initialize` + session era. It is what `--spec-version auto` selects for every server that does not answer a modern `server/discover`.\n\n<details>\n<summary><strong>Transport (16 tests)</strong></summary>\n\nHTTP-only (13):\n- **transport-post** — Server accepts HTTP POST requests (required)\n- **transport-content-type** — Responds with application/json or text/event-stream (required)\n- **transport-notification-202** — Notifications return exactly 202 Accepted\n- **transport-content-type-reject** — Rejects non-JSON request Content-Type\n- **transport-session-id** — Enforces MCP-Session-Id after initialization\n- **transport-session-invalid** — Returns 404 for unknown session ID\n- **transport-get** — GET returns SSE stream or 405\n- **transport-delete** — DELETE accepted or returns 405\n- **transport-batch-reject** — Rejects JSON-RPC batch requests (required)\n- **transport-content-type-init** — Initialize response has valid content type\n- **transport-get-stream** — GET with session returns SSE or 405\n- **transport-concurrent** — Handles concurrent requests\n- **transport-sse-event-field** — SSE responses include required event: message field\n\nstdio-only (3):\n- **stdio-framing** — Newline-delimited JSON framing (required)\n- **stdio-unicode** — UTF-8 unicode roundtrip preserves non-ASCII payloads\n- **stdio-unknown-method-recovers** — Returns -32601 for unknown methods and keeps serving\n\n</details>\n\n<details>\n<summary><strong>Lifecycle (21 tests)</strong></summary>\n\n- **lifecycle-init** — Initialize handshake succeeds (required)\n- **lifecycle-proto-version** — Returns valid YYYY-MM-DD protocol version (required)\n- **lifecycle-server-info** — Includes serverInfo with name\n- **lifecycle-capabilities** — Returns capabilities object (required)\n- **lifecycle-jsonrpc** — Response is valid JSON-RPC 2.0 (required)\n- **lifecycle-ping** — Responds to ping method (required)\n- **lifecycle-instructions** — Instructions field is valid string if present\n- **lifecycle-id-match** — Response ID matches request ID (required)\n- **lifecycle-string-id** — Supports string request IDs (JSON-RPC 2.0)\n- **lifecycle-version-negotiate** — Handles unknown protocol version gracefully\n- **lifecycle-reinit-reject** — Rejects second initialize request\n- **lifecycle-logging** — logging/setLevel accepted (required if logging capability declared)\n- **lifecycle-completions** — completion/complete accepted (required if completions capability declared)\n- **lifecycle-cancellation** — Handles cancellation notifications\n- **lifecycle-progress** — Handles progress notifications gracefully\n- **lifecycle-list-changed** — Accepts listChanged notifications for declared capabilities\n- **lifecycle-progress-token** — Supports progress tokens in requests via SSE\n- **lifecycle-sampling-capability** — Advisory check for server-side use of the client sampling capability\n- **lifecycle-roots-capability** — Advisory check for server-side use of the client roots capability\n- **lifecycle-elicitation-capability** — Advisory check for the 2025-11-25 client elicitation capability\n- **lifecycle-meta-tolerance** — Server ignores unknown `_meta` fields on incoming requests\n\n</details>\n\n<details>\n<summary><strong>Tools (4 tests)</strong></summary>\n\n- **tools-list** — tools/list returns valid array (required if tools capability declared)\n- **tools-call** — tools/call responds with correct format\n- **tools-pagination** — tools/list supports cursor-based pagination\n- **tools-content-types** — Tool content items have valid types\n\n</details>\n\n<details>\n<summary><strong>Resources (5 tests)</strong></summary>\n\n- **resources-list** — resources/list returns valid array (required if resources capability declared)\n- **resources-read** — resources/read returns content items\n- **resources-templates** — resources/templates/list works or returns method-not-found\n- **resources-pagination** — resources/list supports cursor-based pagination\n- **resources-subscribe** — Resource subscribe/unsubscribe (required if subscribe capability declared)\n\n</details>\n\n<details>\n<summary><strong>Prompts (3 tests)</strong></summary>\n\n- **prompts-list** — prompts/list returns valid array (required if prompts capability declared)\n- **prompts-get** — prompts/get returns valid messages\n- **prompts-pagination** — prompts/list supports cursor-based pagination\n\n</details>\n\n<details>\n<summary><strong>Error Handling (10 tests)</strong></summary>\n\n- **error-unknown-method** — Returns JSON-RPC error for unknown method (required)\n- **error-method-code** — Uses correct -32601 error code\n- **error-invalid-jsonrpc** — Handles malformed JSON-RPC (required)\n- **error-invalid-json** — Handles invalid JSON body\n- **error-missing-params** — Returns error for tools/call without name\n- **error-parse-code** — Returns -32700 for invalid JSON\n- **error-invalid-request-code** — Returns -32600 for invalid request\n- **tools-call-unknown** — Returns error for nonexistent tool name\n- **error-capability-gated** — Rejects methods for undeclared capabilities\n- **error-invalid-cursor** — Handles invalid pagination cursor gracefully\n\n</details>\n\n<details>\n<summary><strong>Schema Validation (6 tests)</strong></summary>\n\n- **tools-schema** — All tools have valid name and inputSchema (required if tools capability declared)\n- **tools-annotations** — Tool annotations are valid if present\n- **tools-title-field** — Tools include title field (2025-11-25)\n- **tools-output-schema** — Tools with outputSchema are valid (2025-11-25)\n- **prompts-schema** — Prompts have valid name field (required if prompts capability declared)\n- **resources-schema** — Resources have valid uri and name (required if resources capability declared)\n\n</details>\n\n<details>\n<summary><strong>Security (23 tests)</strong></summary>\n\n- **security-auth-required** — Rejects unauthenticated requests\n- **security-www-authenticate** — 401 responses include WWW-Authenticate header\n- **security-auth-malformed** — Rejects malformed auth credentials\n- **security-tls-required** — Enforces HTTPS/TLS\n- **security-session-entropy** — Session IDs are high-entropy\n- **security-session-not-auth** — Session ID does not bypass auth\n- **security-oauth-metadata** — Protected Resource Metadata endpoint exists (RFC 9728)\n- **security-token-in-uri** — Rejects auth tokens in query string\n- **security-cors-headers** — CORS headers are restrictive\n- **security-origin-validation** — Validates Origin header for DNS rebinding protection\n- **security-command-injection** — Resists command injection in tool params\n- **security-sql-injection** — Resists SQL injection in tool params\n- **security-path-traversal** — Resists path traversal in tool params\n- **security-ssrf-internal** — Resists SSRF to internal networks\n- **security-oversized-input** — Handles oversized inputs gracefully\n- **security-extra-params** — Rejects or ignores extra tool params\n- **security-tool-schema-defined** — All tools define inputSchema\n- **security-tool-rug-pull** — Tool definitions are stable across calls\n- **security-tool-description-poisoning** — Tool descriptions free of injection patterns\n- **security-tool-cross-reference** — Tools do not reference other tools by name\n- **security-error-no-stacktrace** — Error responses do not leak stack traces\n- **security-error-no-internal-ip** — Error responses do not leak internal IPs\n- **security-rate-limiting** — Rate limiting is enforced\n\n</details>\n\n## What the 103 tests check (2026-07-28)\n\nThe 2026-07-28 catalog grades the stateless, per-request `_meta` era: `server/discover` instead of `initialize`, no sessions, caching hints on every cacheable result, `resultType` on every result, MRTR `input_required` results instead of server-initiated requests, and `-32602` for missing resources. An id shared with the 2025-11-25 list covers the same feature, but its criteria and required flag may differ between the catalogs (`stdio-framing` and `error-invalid-jsonrpc` are optional here, `error-method-code` is required), so ids are comparable only within one catalog; a check whose verdict flipped carries a new id, and `diff` refuses to compare reports across revisions. Post-hoc tests scan a recording of every message the server sent during the run (and fail, rather than pass vacuously, when nothing was received). The `_meta` and standard-header rejection tests are attributable: a rejection is credited only when the conformant `server/discover` was served, so a legacy-only server pinned to this catalog fails them as \"not evaluable\". The setup `server/discover` is resent once after a 429, and every rule that reads it judges the answer it settles on. The checks that credit any rejection — `transport-batch-reject`, `transport-content-type-reject`, `lifecycle-jsonrpc`, `lifecycle-subscriptions-listen`, and six error checks (`error-unknown-method`, `error-invalid-jsonrpc`, `error-invalid-json`, `error-missing-params`, `error-capability-gated`, `error-invalid-cursor`), plus the bodiless 4xx that `error-parse-code` and `error-invalid-request-code` accept — also ask whose answer it is: a gateway's 401 with a `-32001` body, a 403 that reads as an auth refusal (without `--auth` any Bearer challenge; with `--auth`, one carrying an `error` parameter), a 429 still a 429 after one resend, or any other 403 that a conformant twin sent next to the probe (a `server/discover`; for `error-invalid-cursor`, its list method without the cursor) could not get past either fails as \"not evaluable\", while a 5xx without the check's own code fails as the server failing on the request. `lifecycle-jsonrpc`'s probe is the conformant `server/discover` itself, so no twin is sent for it: any 403 on it, and a 5xx without a server's own refusal code, is \"not evaluable\". `transport-batch-reject` and `transport-content-type-reject` also fail any rejection as \"not evaluable\" when the setup `server/discover` was itself rejected. `tools-call-unknown` is not read this way yet: a gateway's `-32001` on its `tools/call` still passes it. The four injection tests probe a single (tool, argument) target from the safest annotation tier that has a string argument — `readOnlyHint: true`, then `destructiveHint: false`, then unannotated tools (the spec defaults `destructiveHint` to true), then `destructiveHint: true`, with passed-over and live-probed tools named in warnings — fill the other required arguments with schema-honouring placeholders, and report how many payloads were rejected, returned without evidence of execution, or never reached the tool (all never-reached is inconclusive, with a warning, and flagged as a skip). On stdio a check whose own request kills the server (an injection payload, the 1 MB argument, unknown tool arguments, `stdio-unicode`'s CJK/emoji probe, one of `lifecycle-progress-token`'s calls) has it restarted for the checks after it, every time that happens, `--retries` included — the security checks and `stdio-unicode` fail as died; `security-tool-rug-pull` then compares two lists from the new process. `stdio-unicode` and `lifecycle-progress-token` also charge a child that answers and exits right after (a plain `server/discover` follows the answer), and `stdio-unicode` fails one that answers and then stops answering. `security-rate-limiting` bursts 50 `tools/call`s at a read-only, no-argument tool when there is one and passes a quiet burst with a warning either way.\n\n<details>\n<summary><strong>Transport (20 tests)</strong></summary>\n\nHTTP-only (15):\n- **transport-post** — HTTP POST accepted (required)\n- **transport-content-type** — Responds with JSON or SSE (required)\n- **transport-content-type-reject** — Rejects non-JSON request Content-Type\n- **transport-batch-reject** — Rejects JSON-RPC batch requests (required)\n- **transport-notification-202** — Notification returns 202 Accepted\n- **transport-concurrent** — Handles concurrent requests\n- **transport-get-removed** — GET returns 405\n- **transport-delete-removed** — DELETE returns 405\n- **transport-session-ignored** — Ignores Mcp-Session-Id\n- **transport-header-version-required** — Rejects missing MCP-Protocol-Version header (required)\n- **transport-header-version-mismatch** — Rejects header/_meta version mismatch (required)\n- **transport-header-method-required** — Rejects missing Mcp-Method header (required)\n- **transport-header-method-mismatch** — Rejects Mcp-Method/body mismatch (required)\n- **transport-header-name-mismatch** — Rejects Mcp-Name/body mismatch\n- **transport-header-case-insensitive** — Header names are case-insensitive\n\nBoth transports (1, post-hoc):\n- **transport-no-server-requests** — No server-initiated requests on any stream (required)\n\nstdio-only (4):\n- **stdio-framing** — Newline-delimited JSON framing\n- **stdio-unicode** — UTF-8 unicode roundtrip\n- **stdio-unknown-method-recovers** — Recovers after unknown method\n- **stdio-cancellation** — Ignores cancellation of unknown request\n\n</details>\n\n<details>\n<summary><strong>Lifecycle (22 tests)</strong></summary>\n\n- **lifecycle-discover** — server/discover returns DiscoverResult (required)\n- **lifecycle-discover-versions** — supportedVersions are well-formed (required)\n- **lifecycle-discover-caching** — server/discover carries caching hints (required)\n- **lifecycle-jsonrpc** — Response is valid JSON-RPC 2.0 (required)\n- **lifecycle-id-match** — Response id matches request id (required)\n- **lifecycle-string-id** — Supports string request ids\n- **lifecycle-capabilities** — Returns capabilities object (required)\n- **lifecycle-server-info** — Includes serverInfo in _meta\n- **lifecycle-instructions** — Instructions field is valid\n- **lifecycle-meta-required** — Rejects request without _meta (required)\n- **lifecycle-meta-protocol-version-required** — Rejects _meta without protocolVersion (required)\n- **lifecycle-meta-client-capabilities-required** — Rejects _meta without clientCapabilities (required)\n- **lifecycle-meta-client-info-optional** — Serves _meta without clientInfo (required)\n- **lifecycle-version-unsupported** — Rejects unsupported protocol version (required)\n- **lifecycle-removed-methods** — Removed legacy methods are rejected\n- **lifecycle-dual-era** — Legacy initialize probe (informational)\n- **lifecycle-capability-handlers-match** — Capability declarations match handlers\n- **lifecycle-subscriptions-listen** — subscriptions/listen acknowledges first\n- **lifecycle-log-level-gating** — No log notifications without logLevel (required)\n- **lifecycle-meta-tolerance** — Tolerates unknown _meta keys\n- **lifecycle-completions** — completion/complete accepted (required if completions capability declared)\n- **lifecycle-progress-token** — Progress notifications echo the token\n\n</details>\n\n<details>\n<summary><strong>Tools (6 tests)</strong></summary>\n\n- **tools-list** — tools/list returns valid response (required if tools capability declared)\n- **tools-list-caching** — tools/list carries caching hints (required if tools capability declared)\n- **tools-list-deterministic-order** — tools/list order is deterministic\n- **tools-call** — tools/call responds correctly (required if tools capability declared)\n- **tools-content-types** — Tool content items have valid types (required if tools capability declared)\n- **tools-pagination** — tools/list supports pagination\n\n</details>\n\n<details>\n<summary><strong>Resources (8 tests)</strong></summary>\n\n- **resources-list** — resources/list returns valid response (required if resources capability declared)\n- **resources-list-caching** — resources/list carries caching hints (required if resources capability declared)\n- **resources-read** — resources/read returns content (required if resources capability declared)\n- **resources-read-caching** — resources/read carries caching hints (required if resources capability declared)\n- **resources-not-found** — Nonexistent resource returns -32602 (required if resources capability declared)\n- **resources-templates** — resources/templates/list returns valid response\n- **resources-templates-caching** — resources/templates/list carries caching hints\n- **resources-pagination** — resources/list supports pagination\n\n</details>\n\n<details>\n<summary><strong>Prompts (4 tests)</strong></summary>\n\n- **prompts-list** — prompts/list returns valid response (required if prompts capability declared)\n- **prompts-list-caching** — prompts/list carries caching hints (required if prompts capability declared)\n- **prompts-get** — prompts/get returns valid messages (required if prompts capability declared)\n- **prompts-pagination** — prompts/list supports pagination\n\n</details>\n\n<details>\n<summary><strong>Error Handling (12 tests)</strong></summary>\n\n- **error-unknown-method** — Unknown method returns JSON-RPC error (required)\n- **error-method-code** — Unknown method uses -32601 (required)\n- **error-invalid-jsonrpc** — Handles malformed JSON-RPC\n- **error-invalid-json** — Handles invalid JSON body\n- **error-parse-code** — Returns -32700 for invalid JSON\n- **error-invalid-request-code** — Returns -32600 for invalid request\n- **error-missing-params** — tools/call without name returns error\n- **tools-call-unknown** — Unknown tool name returns error\n- **error-capability-gated** — Rejects methods for undeclared capabilities\n- **error-invalid-cursor** — Handles invalid pagination cursor\n- **error-id-echo** — Error responses echo the request id\n- **error-retired-codes** — No retired error codes\n\n</details>\n\n<details>\n<summary><strong>Schema Validation (10 tests)</strong></summary>\n\n- **tools-schema** — All tools have name and inputSchema\n- **tools-annotations** — Tool annotations are valid\n- **tools-title-field** — Tools include title field\n- **tools-output-schema** — Tools with outputSchema are valid\n- **prompts-schema** — Prompts have name field\n- **resources-schema** — Resources have uri and name\n- **schema-result-type** — Every result carries resultType (required)\n- **schema-no-input-required-on-lists** — input_required only on MRTR methods (required)\n- **schema-input-required-shape** — InputRequiredResult is well-formed\n- **schema-wire-valid** — Messages validate against the 2026-07-28 schema\n\n</details>\n\n<details>\n<summary><strong>Security (21 tests)</strong></summary>\n\n- **security-auth-required** — Rejects unauthenticated requests\n- **security-www-authenticate** — 401 responses include WWW-Authenticate\n- **security-auth-malformed** — Rejects malformed auth credentials\n- **security-tls-required** — Enforces HTTPS/TLS\n- **security-oauth-metadata** — Protected Resource Metadata endpoint exists\n- **security-token-in-uri** — Rejects auth tokens in query string\n- **security-cors-headers** — CORS headers are restrictive\n- **security-origin-validation** — Validates Origin header\n- **security-command-injection** — Resists command injection in tool params\n- **security-sql-injection** — Resists SQL injection in tool params\n- **security-path-traversal** — Resists path traversal in tool params\n- **security-ssrf-internal** — Resists SSRF to internal networks\n- **security-oversized-input** — Handles oversized inputs gracefully\n- **security-extra-params** — Rejects or ignores extra tool params\n- **security-tool-schema-defined** — All tools define inputSchema\n- **security-tool-rug-pull** — Tool definitions are stable across calls\n- **security-tool-description-poisoning** — Tool descriptions free of injection patterns\n- **security-tool-cross-reference** — Tools do not reference other tools by name\n- **security-error-no-stacktrace** — Error responses do not leak stack traces\n- **security-error-no-internal-ip** — Error responses do not leak internal IPs\n- **security-rate-limiting** — Rate limiting is enforced\n\n</details>\n\n## Grading\n\n| Grade | Score  |\n|-------|--------|\n| A     | 90-100 |\n| B     | 75-89  |\n| C     | 60-74  |\n| D     | 40-59  |\n| F     | 0-39   |\n\nRequired tests are worth 70% of the score, optional tests 30%, counted over the tests that measured something. A test that measured nothing (a skip) is left out of the score entirely, neither a pass nor a failure; when every required or every optional test skipped, the other pool carries the whole score, and a run in which every test skipped scores 0 (F) like a run in which none ran. The terminal, markdown, HTML and GitHub reports, the SARIF invocation properties (`note`) and the MCP `mcp_compliance_test` tool then say \"No test measured anything\"; the JSON report shows it in its counts (`summary.skipped` equals `summary.total`). Skips still count toward the pass totals (`summary.passed`, the category counts); every report format counts or lists them (the terminal lists them under `SKIPPED CHECKS`), the terminal category bars and HTML category cards score what was measured, `--verbose` prints skips as `SKIP`, and `diff` lists checks that start or stop skipping. Reports written by 0.19.0 and earlier scored a skip as a pass, so their scores run higher for the same results. By how much depends on the run: on the reference servers no rounded score moved, but the drop grows with a pool's failures times its skips, enough to cost a server whose required checks all pass a whole grade, and a run where most checks measured nothing can drop several. `diff` scores both reports from their results the way this version does, so a baseline written by 0.19.0 or earlier still compares like with like, with a note naming the score that file recorded. See the [full scoring algorithm](./COMPLIANCE_RUBRIC.md#2-scoring-algorithm) in the methodology doc.\n\n## CI integration\n\n```yaml\n# GitHub Actions example\n- name: MCP Compliance Check\n  run: npx @yawlabs/mcp-compliance@latest test ${{ env.MCP_SERVER_URL }} --strict\n```\n\n```yaml\n# With JSON output for parsing\n- name: MCP Compliance Check\n  run: |\n    npx @yawlabs/mcp-compliance@latest test ${{ env.MCP_SERVER_URL }} --format json > compliance.json\n    cat compliance.json | jq '.grade'\n```\n\n```yaml\n# With retries for flaky network conditions\n- name: MCP Compliance Check\n  run: npx @yawlabs/mcp-compliance@latest test ${{ env.MCP_SERVER_URL }} --strict --retries 2 --timeout 30000\n```\n\n```yaml\n# SARIF output for GitHub Code Scanning\n- name: MCP Compliance Check\n  run: npx @yawlabs/mcp-compliance@latest test ${{ env.MCP_SERVER_URL }} --format sarif > compliance.sarif\n- name: Upload SARIF\n  uses: github/codeql-action/upload-sarif@v3\n  with:\n    sarif_file: compliance.sarif\n```\n\n## MCP server (for Claude Code, Cursor, etc.)\n\nThis package also exposes an MCP server with 2 tools that can be used from Claude Code, Cursor, or any MCP client.\n\n### Setup\n\n**Claude Code (one-liner):**\n\n```bash\nclaude mcp add mcp-compliance -- npx -y @yawlabs/mcp-compliance@latest mcp\n```\n\n**Or create `.mcp.json` in your project root:**\n\nmacOS / Linux / WSL:\n\n```json\n{\n  \"mcpServers\": {\n    \"mcp-compliance\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@yawlabs/mcp-compliance@latest\", \"mcp\"]\n    }\n  }\n}\n```\n\nWindows:\n\n```json\n{\n  \"mcpServers\": {\n    \"mcp-compliance\": {\n      \"command\": \"cmd\",\n      \"args\": [\"/c\", \"npx\", \"-y\", \"@yawlabs/mcp-compliance@latest\", \"mcp\"]\n    }\n  }\n}\n```\n\n> **Tip:** This file is safe to commit — it contains no secrets.\n\nRestart your MCP client and approve the server when prompted.\n\n### Tools\n\n- **mcp_compliance_test** — Run the full compliance suite against an HTTP MCP endpoint (URL). Supports auth, custom headers, timeout, retries, category/test filtering, and `specVersion` (`auto` | `2025-11-25` | `2026-07-28`, default `auto`). Returns grade, score, the resolved `specVersion`, and detailed results (each test marked PASS, FAIL or SKIP; the Tests line counts the skips). stdio targets are CLI-only.\n- **mcp_compliance_explain** — Explain what a specific test ID checks and why it matters, with a link to the spec section. Ids are per catalog: pass `specVersion` to read one catalog, or omit it to search both (a shared id is explained once per suite, with a note saying whether the required flag / category also differ, and an id that only exists in the other suite is pointed out).\n\nAll tools have [MCP tool annotations](https://modelcontextprotocol.io/specification/2025-11-25/server/tools#annotations) (`readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`) so MCP clients can skip confirmation dialogs for safe operations.\n\n## Programmatic usage\n\n```typescript\nimport { runComplianceSuite } from '@yawlabs/mcp-compliance';\n\nconst report = await runComplianceSuite('https://my-server.com/mcp');\nconsole.log(`Grade: ${report.grade} (${report.score}%)`);\n\n// With options\nconst report2 = await runComplianceSuite('https://my-server.com/mcp', {\n  headers: { 'Authorization': 'Bearer tok123' },\n  timeout: 30000,\n  retries: 1,\n  only: ['transport', 'lifecycle'],\n  specVersion: '2026-07-28', // 'auto' (default) | '2025-11-25' | '2026-07-28'\n});\nconsole.log(report2.specVersion); // always the resolved revision, never 'auto'\n\n// Per-revision catalogs and helpers\nimport { getTestDefinitions, specBaseFor, SUPPORTED_SPEC_VERSIONS } from '@yawlabs/mcp-compliance';\ngetTestDefinitions('2026-07-28'); // 103 TestDefinitions; TEST_DEFINITIONS stays the 2025-11-25 list\nspecBaseFor(report2.specVersion); // base URL for that revision's spec links\n\n// Live progress for streaming UIs (e.g. server-sent-events to a browser)\nawait runComplianceSuite('https://my-server.com/mcp', {\n  onTestComplete: (result) => {\n    // result has the full TestResult: id, name, category, required,\n    // passed, skipped (true when the check measured nothing), details,\n    // durationMs, specRef. Push it to your client. (onProgress carries no\n    // skip flag: a skip arrives there as passed.)\n    sendToClient(result);\n  },\n  // Pre-test status lines: the stdio era probe still waiting after ~2 s,\n  // or an HTTP preflight timeout being re-probed within startupTimeout.\n  // The CLI prints these dimmed on stderr in terminal mode only.\n  onStatus: (message) => sendToClient({ status: message }),\n});\n```\n\n## Report schema\n\nThe JSON output of the test suite is a stable, versioned contract. Every report includes a `schemaVersion` field at the top level. The full JSON Schema lives at [`schemas/report.v1.json`](./schemas/report.v1.json) and is shipped with the npm package.\n\n```jsonc\n{\n  \"schemaVersion\": \"1\",        // bumped on breaking changes to the report shape\n  \"specVersion\": \"2026-07-28\", // MCP spec revision the run graded — the RESOLVED value (\"2025-11-25\" or \"2026-07-28\"), never \"auto\"\n  \"toolVersion\": \"0.19.0\",     // mcp-compliance version that produced the report\n  \"url\": \"...\",\n  \"timestamp\": \"...\",\n  \"grade\": \"A\",\n  \"score\": 92.5,\n  \"summary\": { \"total\": 99, \"passed\": 97, \"failed\": 2, \"required\": 24, \"requiredPassed\": 24, \"skipped\": 4 },\n  \"tests\": [                   // ids are only meaningful together with specVersion\n    { \"id\": \"security-auth-malformed\", \"passed\": true, \"skipped\": true,\n      \"details\": \"Skipped: needs a valid credential to compare against (pass --auth)\", ... },\n    ...\n  ],\n  // ...\n}\n```\n\nA test that ran but measured nothing (no `--auth`, no tools declared, a check that does not apply on the transport, or a refusal an earlier check could not attribute) is recorded as `passed: true` with `skipped: true`; `summary.skipped` and each `categories[*].skipped` count them. Skips count in `passed` but are left out of `score` (reports written by 0.19.0 and earlier scored them as passes), so read `skipped` next to `passed` before treating a pass total as evidence. SARIF output keeps its `results` to failures and names the skips in the run's invocation properties (`testsSkipped`, `skippedTests`), so Code Scanning opens no alert for them.\n\nConsumer guidance:\n\n- Pin against `schemaVersion`. Reject reports with an unknown version rather than guessing at the shape.\n- Check `report.specVersion` before interpreting `tests`. Since 0.19 **one tool version produces reports for either revision**, so a dashboard that keyed on `toolVersion` alone will see `2025-11-25` and `2026-07-28` reports from the same version; test ids, the required set and `serverInfo.protocolVersion` all belong to the revision named there. Treat an unknown `specVersion` the way you treat an unknown `schemaVersion`: reject, do not guess.\n- The schema validates with any Draft 2020-12 validator (e.g. `ajv`). It is strict (`additionalProperties: false`), so validate a report against the `report.v1.json` shipped with the tool version that wrote it: 0.19 added optional `skipped` fields (on a test, in `summary` and in `categories`) to v1, and an older copy of the schema rejects them.\n- Renames, removals, or type changes bump `schemaVersion`; the report shape is otherwise stable within a major version.\n- Two runs against the same server produce equivalent grade, score, and per-test pass/fail (modulo timings/timestamps) — provided they resolve to the same `specVersion`. Under `auto` that is a property of the server, so pin `--spec-version` where determinism across deploys matters.\n\n## Methodology & docs\n\nThe testing methodology is published openly so the grading is auditable:\n\n- **[Testing methodology](./COMPLIANCE_RUBRIC.md)** — test execution model per spec revision, scoring algorithm, all 88 + 103 test rules with pass/fail criteria (CC BY 4.0)\n- **[Machine-readable rule catalog](./mcp-compliance-rules.json)** — every rule tagged with the spec revision it applies to, for programmatic consumption (kept in lock-step with the code by `src/tests/catalog-parity.test.ts`)\n- **[Why `mcp-compliance`](./docs/WHY.md)** — the problem, existing alternatives, what this tool does differently\n- **[Fixing common failures](./docs/FIXES.md)** — recipes for the most frequent test failures with code snippets, for both revisions\n- **[Spec version policy](./docs/SPEC_VERSION_MIGRATION.md)** — one tool version, several spec catalogs: how `auto` decides, how to pin, what changes when your server upgrades\n- **[Performance deep-dive](./docs/PERFORMANCE.md)** — why the suite is sequential and what parallel execution would cost\n- **[Spec PR drafts](./docs/spec-prs/)** — our proposed MCP spec clarifications for ambiguous cases we've hit\n\nThe methodology is not an authoritative conformance standard — it's one tool's choices, published so they can be inspected, adopted, or forked. The official MCP specification ([2025-11-25](https://modelcontextprotocol.io/specification/2025-11-25), [2026-07-28](https://modelcontextprotocol.io/specification/2026-07-28)) defines what servers must do; this document describes how `@yawlabs/mcp-compliance` verifies it.\n\n## Requirements\n\n- Node.js 20+\n\n## Contributing\n\n```bash\ngit clone https://github.com/YawLabs/mcp-compliance.git\ncd mcp-compliance\nnpm install\nnpm run build\nnpm test\n```\n\n**Development commands:**\n\n| Command | Description |\n|---------|-------------|\n| `npm run build` | Compile with tsup |\n| `npm run dev` | Watch mode |\n| `npm test` | Run tests (vitest) |\n| `npm run lint` | Check with Biome |\n| `npm run lint:fix` | Auto-fix with Biome |\n| `npm run typecheck` | TypeScript type checking |\n| `npm run test:ci` | Build + test (CI-safe) |\n\n## Links\n\n- [MCP Specification 2025-11-25](https://modelcontextprotocol.io/specification/2025-11-25)\n- [MCP Specification 2026-07-28](https://modelcontextprotocol.io/specification/2026-07-28)\n- [Testing methodology](./COMPLIANCE_RUBRIC.md)\n- [Yaw Labs](https://yaw.sh)\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n\n[![Follow @YawLabs on X](https://img.shields.io/badge/follow-%40YawLabs-000000?logo=x&logoColor=white)](https://x.com/YawLabs)\n","readmeFilename":"README.md"}