← Back to search

@alesya_h/jsmcp

alesya_h Scanned 17h ago

MCP server that allows agents to work with other MCP tools programmatically by writing JavaScript

D
53.3 / 100

Versions

1.6.1latest
May 23, 2026
1.6.0
May 13, 2026
1.5.0
May 10, 2026
1.4.0
May 10, 2026
1.3.2
May 9, 2026
+ show 7 moreshow less
1.3.1
May 9, 2026
1.3.0
Apr 30, 2026
1.2.2
Apr 15, 2026
1.2.0
Apr 13, 2026
1.1.0
Mar 30, 2026
1.0.1
Mar 30, 2026
1.0.0
Mar 30, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 11

list_servers
annotations: none low

Required first step. You MUST call this to discover which tool server namespaces are available before using any tools. It lists the available servers, what they are for, and whether they started successfully. User assumes you called it and know what groups of tools are available to you. Once you have the list of servers you may use list_tools to learn more about tools in each group whenever your work might need any of the tools from it.

list_tools
annotations: none low

List the allowed tools for a server, including preferred aliases and schemas. You MUST call this before using that server in execute_code so you know the exact tool names, aliases, and arguments.

execute_code
annotations: none low

Execute JavaScript against started MCP server namespaces. You MUST call list_tools for a server before using its tools here. After calling list_servers, each started server is available as a global object and each allowed tool is a function on it. Optional input data is an object exposed as the global variable data, it might be useful to avoid having to escape strings inside the code string. Session-scoped in-memory JSON storage is available as jsmcp.memory with get/set/has/delete/keys/entries/clear/update methods. Prefer underscore aliases when available, for example return await math.add({ a: 2, b: 5 }) or return await browser.open_tab({ url: \"https://example.com\" }). Original tool names still work with bracket access such as obj[\"tool-name\"], but prefer obj.tool_name for readability. Prefer writing JavaScript here whenever the work would require more than a single tool call, because code makes multi-step tool use easier and less error-prone. console.log/info/warn/error write to fetch_logs, not the return value. Connected tool calls automatically resolve to structuredContent when present, otherwise to a string for text-only results or an object with text/content/meta for mixed content. Successful execute_code results always use structuredContent { value, executionMs }; errors use { error, executionMs }. executionMs is elapsed wall-clock time including awaited tool calls. Returned strings appear as raw text by default; pass rawText: false for a JSON-formatted envelope in content.

fetch_logs
annotations: none low

Fetch and clear logs emitted by execute_code via console methods

clear_logs
annotations: none low

Clear stored execute_code logs

tool__read-value
annotations: none low

Read a test value

tool__repeat-text
annotations: none low

Repeat text

add
annotations: none low

Add two numbers

repeat
annotations: none low

Repeat text a number of times

repeat-text
annotations: none low

Repeat text with a dashed tool name (text-only result)

read-env
annotations: none low

Read an environment variable

Permissions 3

network medium
Server uses network capabilities via: fetch()
shell high
Server uses shell capabilities via: child_process, spawn()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 43

low
Tool 'list_servers' has no annotations annotation_checker · 100%
low
Tool 'list_tools' has no annotations annotation_checker · 100%
low
Tool 'execute_code' has no annotations annotation_checker · 100%
low
Tool 'fetch_logs' has no annotations annotation_checker · 100%
low
Tool 'clear_logs' has no annotations annotation_checker · 100%
low
Tool 'tool__read-value' has no annotations annotation_checker · 100%
low
Tool 'tool__repeat-text' has no annotations annotation_checker · 100%
low
Tool 'add' has no annotations annotation_checker · 100%
low
Tool 'repeat' has no annotations annotation_checker · 100%
low
Tool 'repeat-text' has no annotations annotation_checker · 100%
low
Tool 'read-env' has no annotations annotation_checker · 100%
medium
OAuth implementation without PKCE auth_checker · 75%
high
Remote transport without authentication auth_checker · 70%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
high
Tool shadowing in 'execute_code': Directive: 'you must call list_tools' cross_tool_detector · 90%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.28.0 (GHSA-6qxp-vccf-f47h) dependency_analyzer · 95%
medium
Vulnerable dependency: ws@8.20.0 (GHSA-58qx-3vcg-4xpx) dependency_analyzer · 95%
medium
Vulnerable dependency: ws@8.20.0 (GHSA-96hv-2xvq-fx4p) dependency_analyzer · 95%
info
package.json metadata manifest_parser · 100%
info
Tool: list_servers manifest_parser · 85%
info
Tool: list_tools manifest_parser · 85%
info
Tool: execute_code manifest_parser · 85%
info
Tool: fetch_logs manifest_parser · 85%
info
Tool: clear_logs manifest_parser · 85%
info
Tool: tool__read-value manifest_parser · 85%
info
Tool: tool__repeat-text manifest_parser · 85%
info
Tool: add manifest_parser · 85%
info
Tool: repeat manifest_parser · 85%
info
Tool: repeat-text manifest_parser · 85%
info
Tool: read-env manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (13) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
critical
Tool poisoning in 'list_servers': Directive language: 'you must' poisoning · 85%
critical
Tool poisoning in 'list_tools': Directive language: 'you must' poisoning · 85%
critical
Tool poisoning in 'list_tools': Cross-tool sequencing directive poisoning · 85%
critical
Tool poisoning in 'execute_code': Directive language: 'you must' poisoning · 85%
critical
Tool poisoning in 'execute_code': Directive language: 'always' poisoning · 85%
info
SBOM generated: 94 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%