Skills/npm/testing

testing@1.12.0

CAUTION· install only

Publisher claims: "End-to-end testing for FrontMCP servers: Jest fixtures with a connected MCP client, MCP matchers, JWT and OAuth mocks, and HTTP mocking" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server)Publisher frontmcp · publishing for 338 daysInstalls 6,335Last detonated 28 h ago

Coverage

Install scripts ran; no agent task scenario for this bundle.
Tested
install scripts, with decoy credentials in place · second launch with the clock 45 days ahead · every file read, file written and host contacted by what ran
Not tested
use of the skill by an agent

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; install scripts ran; no agent task scenario for this bundle) on 2026-11-13 and scored it 75/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Auto-update or dynamic fetch configuration; Auto-update or dynamic fetch configuration; Auto-update or dynamic fetch configuration. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 0 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessinstall script run in the sandbox
0.1sprocessexited 1: Node.js v22.23.5
0.1sprocessscript backend runs setup only
0.1sprocessscript backend runs setup only
0.2sprocesssecond launch, clock +45 days, CI unset
0.3sprocessexited 1: Node.js v22.23.5

Static findings

HIGH
Auto-update or dynamic fetch configurationesm/perf/index.mjs:19 · Auto-update or dynamic fetch configuration — agent may load new code at runtime…t:50390,size:10},"esm-package-server":{start:50400,size:10},"esm-package-server-hot-reload":{start:50410,size:10},"esm-package-server-cli":{start:50420,size:10},"demo-e2e-unix-socket":{start:50430,size:10},"demo-e2e-distributed":{start:504…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionfixtures/index.js:1 · File type combined with upload action — agent may exfiltrate local data files…this.requestAnonymousToken()}await this.openStream();this.state="connected";this.log(`Connected; messages go to ${this.messageEndpoint}`)}catch(error){this.state="error";this.stream?.abort();this.stream=void 0;throw error}}async request(me…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionesm/perf/index.mjs:62 · File type combined with upload action — agent may exfiltrate local data files…enerateReport(measurements,baseline,gitInfo);const jsonPath=`${outputDir}/report.json`;const markdownPath=`${outputDir}/report.md`;await writeFile2(jsonPath,generator.generateJsonReport(report));…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Auto-update or dynamic fetch configurationperf/index.js:16 · Auto-update or dynamic fetch configuration — agent may load new code at runtime…t:50390,size:10},"esm-package-server":{start:50400,size:10},"esm-package-server-hot-reload":{start:50410,size:10},"esm-package-server-cli":{start:50420,size:10},"demo-e2e-unix-socket":{start:50430,size:10},"demo-e2e-distributed":{start:504…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionesm/perf/index.mjs:50 · File type combined with upload action — agent may exfiltrate local data files…ER="<!-- PERF_BASELINE_END -->";var DEFAULT_BASELINE_PATH="perf-results/baseline.json";var BaselineStore=class{baseline=null;baselinePath;constructor(baselinePath=DEFAULT_BASELINE_PATH){this.baselinePath=baselinePath}async load(){try{if(!a…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Access to sensitive file pathsfixtures/index.js:26 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files…ingNodePath?existingNodePath.split(path.delimiter):[]].filter(Boolean);return{...env,NODE_PATH:[...new Set(nodePathEntries)].join(path.delimiter)}}function findUp(s…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
File type combined with upload actionesm/index.mjs:106 · File type combined with upload action — agent may exfiltrate local data files…onment variable for verbose output`)}log(message){if(this.options.debug){console.log(`[TestServer] ${message}`)}}};function sleep2(ms){return new Promise(resolve=>setTimeout(resolve,ms))}function signalIfRunning(pid,signal){try{process.kil…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Auto-update or dynamic fetch configurationesm/index.mjs:81 · Auto-update or dynamic fetch configuration — agent may load new code at runtime…t:50390,size:10},"esm-package-server":{start:50400,size:10},"esm-package-server-hot-reload":{start:50410,size:10},"esm-package-server-cli":{start:50420,size:10},"demo-e2e-unix-socket":{start:50430,size:10},"demo-e2e-distributed":{start:504…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathsesm/index.mjs:106 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files…ingNodePath?existingNodePath.split(path.delimiter):[]].filter(Boolean);return{...env,NODE_PATH:[...new Set(nodePathEntries)].join(path.delimiter)}}function findUp(s…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathsesm/perf/index.mjs:44 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files…ingNodePath?existingNodePath.split(path.delimiter):[]].filter(Boolean);return{...env,NODE_PATH:[...new Set(nodePathEntries)].join(path.delimiter)}}function findUp(s…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
File type combined with upload actionesm/index.mjs:4 · File type combined with upload action — agent may exfiltrate local data files… Promise(resolve=>setTimeout(resolve,ms))}var interceptors={logger(logFn=console.log){return ctx=>{logFn(`[MCP Request] ${ctx.request.method}`,ctx.request.params);return{action:"passthrough"}}},delay(ms){return async()=>{await sleep(ms);re…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packageesm/perf/index.mjs:19 · npx invocation of non-well-known package — may execute untrusted code…ort(project,options.port);const serverOptions={...options,port,project,command:`npx nx serve ${project} --port ${port}`,cwd:options.cwd??process.cwd()};const server=n…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionperf/index.js:47 · File type combined with upload action — agent may exfiltrate local data files…ER="<!-- PERF_BASELINE_END -->";var DEFAULT_BASELINE_PATH="perf-results/baseline.json";var BaselineStore=class{baseline=null;baselinePath;constructor(baselinePath=DEFAULT_BASELINE_PATH){this.baselinePath=baselinePath}async load(){try{if(!a…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packageesm/fixtures/index.mjs:4 · npx invocation of non-well-known package — may execute untrusted code…ort(project,options.port);const serverOptions={...options,port,project,command:`npx nx serve ${project} --port ${port}`,cwd:options.cwd??process.cwd()};const server=n…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionesm/perf/index.mjs:19 · File type combined with upload action — agent may exfiltrate local data files…this.requestAnonymousToken()}await this.openStream();this.state="connected";this.log(`Connected; messages go to ${this.messageEndpoint}`)}catch(error){this.state="error";this.stream?.abort();this.stream=void 0;throw error}}async request(me…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionperf/index.js:59 · File type combined with upload action — agent may exfiltrate local data files…enerateReport(measurements,baseline,gitInfo);const jsonPath=`${outputDir}/report.json`;const markdownPath=`${outputDir}/report.md`;await(0,import_utils7.writeFile)(jsonPath,generator.generateJson…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Auto-update or dynamic fetch configurationesm/fixtures/index.mjs:4 · Auto-update or dynamic fetch configuration — agent may load new code at runtime…t:50390,size:10},"esm-package-server":{start:50400,size:10},"esm-package-server-hot-reload":{start:50410,size:10},"esm-package-server-cli":{start:50420,size:10},"demo-e2e-unix-socket":{start:50430,size:10},"demo-e2e-distributed":{start:504…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionesm/fixtures/index.mjs:4 · File type combined with upload action — agent may exfiltrate local data files…this.requestAnonymousToken()}await this.openStream();this.state="connected";this.log(`Connected; messages go to ${this.messageEndpoint}`)}catch(error){this.state="error";this.stream?.abort();this.stream=void 0;throw error}}async request(me…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionindex.js:78 · File type combined with upload action — agent may exfiltrate local data files…)(this.handleRequest.bind(this));this.server=server;server.on("error",err=>{this.log(`Server error: ${err.message}`);reject(err)});server.listen(port,()=>{const address=server.address();if(!address||typeof address==="string"){reject(new Er…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Auto-update or dynamic fetch configurationindex.js:78 · Auto-update or dynamic fetch configuration — agent may load new code at runtime…t:50390,size:10},"esm-package-server":{start:50400,size:10},"esm-package-server-hot-reload":{start:50410,size:10},"esm-package-server-cli":{start:50420,size:10},"demo-e2e-unix-socket":{start:50430,size:10},"demo-e2e-distributed":{start:504…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packageesm/index.mjs:81 · npx invocation of non-well-known package — may execute untrusted code…ort(project,options.port);const serverOptions={...options,port,project,command:`npx nx serve ${project} --port ${port}`,cwd:options.cwd??process.cwd()};const server=n…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionindex.js:157 · File type combined with upload action — agent may exfiltrate local data files…ER="<!-- PERF_BASELINE_END -->";var DEFAULT_BASELINE_PATH="perf-results/baseline.json";var BaselineStore=class{baseline=null;baselinePath;constructor(baselinePath=DEFAULT_BASELINE_PATH){this.baselinePath=baselinePath}async load(){try{if(!a…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionesm/index.mjs:81 · File type combined with upload action — agent may exfiltrate local data files…2(this.handleRequest.bind(this));this.server=server;server.on("error",err=>{this.log(`Server error: ${err.message}`);reject(err)});server.listen(port,()=>{const address=server.address();if(!address||typeof address==="string"){reject(new Er…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Access to sensitive file pathsesm/fixtures/index.mjs:29 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files…ingNodePath?existingNodePath.split(path.delimiter):[]].filter(Boolean);return{...env,NODE_PATH:[...new Set(nodePathEntries)].join(path.delimiter)}}function findUp(s…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
File type combined with upload actionindex.js:103 · File type combined with upload action — agent may exfiltrate local data files…onment variable for verbose output`)}log(message){if(this.options.debug){console.log(`[TestServer] ${message}`)}}};function sleep2(ms){return new Promise(resolve=>setTimeout(resolve,ms))}function signalIfRunning(pid,signal){try{process.kil…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionesm/index.mjs:5 · File type combined with upload action — agent may exfiltrate local data files…Head(200,{"Content-Type":"application/json"});res.end(JSON.stringify(jwks));this.log("Served JWKS")}async handleOidcConfig(_req,res){const issuer=this._info?.issuer??"http://localhost";const config={issuer,authorization_endpoint:`${issuer}…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packageindex.js:78 · npx invocation of non-well-known package — may execute untrusted code…ort(project,options.port);const serverOptions={...options,port,project,command:`npx nx serve ${project} --port ${port}`,cwd:options.cwd??process.cwd()};const server=n…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathsindex.js:103 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files…ingNodePath?existingNodePath.split(path.delimiter):[]].filter(Boolean);return{...env,NODE_PATH:[...new Set(nodePathEntries)].join(path.delimiter)}}function findUp(s…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
Auto-update or dynamic fetch configurationfixtures/index.js:1 · Auto-update or dynamic fetch configuration — agent may load new code at runtime…t:50390,size:10},"esm-package-server":{start:50400,size:10},"esm-package-server-hot-reload":{start:50410,size:10},"esm-package-server-cli":{start:50420,size:10},"demo-e2e-unix-socket":{start:50430,size:10},"demo-e2e-distributed":{start:504…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionindex.js:2 · File type combined with upload action — agent may exfiltrate local data files…Head(200,{"Content-Type":"application/json"});res.end(JSON.stringify(jwks));this.log("Served JWKS")}async handleOidcConfig(_req,res){const issuer=this._info?.issuer??"http://localhost";const config={issuer,authorization_endpoint:`${issuer}…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
CRITICAL
False input termination markerSKILL.md:5 · False input termination marker — attempts to end user input section---Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
File type combined with upload actionindex.js:1 · File type combined with upload action — agent may exfiltrate local data files… Promise(resolve=>setTimeout(resolve,ms))}var interceptors={logger(logFn=console.log){return ctx=>{logFn(`[MCP Request] ${ctx.request.method}`,ctx.request.params);return{action:"passthrough"}}},delay(ms){return async()=>{await sleep(ms);re…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packageperf/index.js:16 · npx invocation of non-well-known package — may execute untrusted code…ort(project,options.port);const serverOptions={...options,port,project,command:`npx nx serve ${project} --port ${port}`,cwd:options.cwd??process.cwd()};const server=n…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionesm/index.mjs:160 · File type combined with upload action — agent may exfiltrate local data files…ER="<!-- PERF_BASELINE_END -->";var DEFAULT_BASELINE_PATH="perf-results/baseline.json";var BaselineStore=class{baseline=null;baselinePath;constructor(baselinePath=DEFAULT_BASELINE_PATH){this.baselinePath=baselinePath}async load(){try{if(!a…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionperf/index.js:16 · File type combined with upload action — agent may exfiltrate local data files…this.requestAnonymousToken()}await this.openStream();this.state="connected";this.log(`Connected; messages go to ${this.messageEndpoint}`)}catch(error){this.state="error";this.stream?.abort();this.stream=void 0;throw error}}async request(me…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Access to sensitive file pathsperf/index.js:41 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files…ingNodePath?existingNodePath.split(path.delimiter):[]].filter(Boolean);return{...env,NODE_PATH:[...new Set(nodePathEntries)].join(path.delimiter)}}function findUp(s…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
npx invocation of non-well-known packagefixtures/index.js:1 · npx invocation of non-well-known package — may execute untrusted code…ort(project,options.port);const serverOptions={...options,port,project,command:`npx nx serve ${project} --port ${port}`,cwd:options.cwd??process.cwd()};const server=n…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06

Cost to the agent

Instructions loaded
≈60 tok
1 file · 81 in bundle

Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.

Known vulnerabilities

No advisories in OSV for @frontmcp/testing@1.12.0 as of 27 h ago. This is the package itself, not its dependencies.

What would make this Verified

5 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Unclaimed publisher≈ +8 on the totalClaim frontmcp: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  2. Auto-update or dynamic fetch configuration≈ +4 on the totalPin versions and sources; vendor anything fetched at install time.
  3. File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
  4. Access to sensitive file paths≈ +2 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
  5. npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
Publish a new version to npm, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim frontmcpPropose a patch to the maintainer