claude-ts-mcps (ukkz/claude-ts-mcps) is an MCP server listed on the M8ven Trust Index. It scores 56 out of 100, grade D. It declares 142 tools. No publisher has claimed this listing.
A collection of Model Context Protocol servers that enable Claude Desktop to provide development assistance capabilities with filesystem, Git, shell command, and web search functionality without incurring API usage costs.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
ukkz
Source: ModelScope
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
puppeteer_navigateNavigate to a URL
puppeteer_screenshotTake a screenshot of the current page or a specific element
puppeteer_clickClick an element on the page
puppeteer_fillFill out an input field
puppeteer_selectSelect an option from a select element
puppeteer_hoverHover over an element on the page
puppeteer_evaluateExecute JavaScript in the browser console
puppeteer_wait_for_selectorWait for an element to appear on the page
puppeteer_wait_for_timeoutWait for a specified amount of time
puppeteer_wait_for_functionWait for a JavaScript function to return true
puppeteer_wait_for_navigationWait for page navigation to complete
puppeteer_keyboard_pressPress a specific key or key combination
puppeteer_keyboard_typeType text with fine-grained control over typing speed
puppeteer_set_viewportSet the viewport size of the page
puppeteer_go_backNavigate back in browser history
puppeteer_go_forwardNavigate forward in browser history
puppeteer_reloadReload the current page
puppeteer_pdfGenerate PDF from the current page
puppeteer_emulate_deviceEmulate a specific device
puppeteer_set_cookiesSet cookies for the current page
puppeteer_get_cookiesGet all cookies for the current page
puppeteer_authenticateSet HTTP authentication credentials
puppeteer_get_titleGet the page title
puppeteer_get_urlGet the current page URL
puppeteer_get_contentGet the full HTML content of the page
puppeteer_get_textGet the text content of an element
puppeteer_get_element_infoGet detailed information about an element
puppeteer_get_framesGet information about all frames on the page
puppeteer_switch_to_frameSwitch context to a specific frame
puppeteer_switch_to_main_frameSwitch context back to the main frame
puppeteer_evaluate_in_frameExecute JavaScript in a specific frame
puppeteer_search_across_framesSearch for elements across all frames
puppeteer_add_script_tagAdd a script tag to the page
puppeteer_clear_inputClear an input field
create_or_update_fileCreate or update a single file in a GitHub repository
search_repositoriesSearch for GitHub repositories
create_repositoryCreate a new GitHub repository
get_file_contentsGet the contents of a file or directory from a GitHub repository
push_filesPush multiple files to a GitHub repository in a single commit
create_branchCreate a new branch in a GitHub repository
create_issueCreate a new issue in a GitHub repository
get_issueGet details of a specific issue in a GitHub repository
list_issuesList issues in a GitHub repository with filtering options
update_issueUpdate an existing issue in a GitHub repository
add_issue_commentAdd a comment to an existing issue
create_pull_requestCreate a new pull request in a GitHub repository
get_pull_requestGet details of a specific pull request
list_pull_requestsList and filter repository pull requests
merge_pull_requestMerge a pull request
search_codeSearch for code across GitHub repositories
search_issuesSearch for issues and pull requests across GitHub repositories
search_usersSearch for users on GitHub
create_releaseCreate a new release for a repository
get_releaseGet a specific release by ID
get_latest_releaseGet the latest release for a repository
list_releasesList releases for a repository
update_releaseUpdate an existing release
delete_releaseDelete a release
brave_web_searchKeyword-based web search returning a list of search results. Each result includes title, description, and URL. Best for quickly scanning multiple web pages or when you need to see diverse sources. Returns up to 20 search results as a list, not synthesized answers.
brave_local_searchSearch local businesses, services, and places. Returns real-time data including address, phone, ratings, hours. Use for location-based queries.
fetchFetch content from a specific URL. Use when you have an exact URL and need its full content. Extracts text as markdown by default, or returns raw HTML if requested. Best for reading specific pages, not for searching.
read_fileRead file contents with proper encoding. Supports partial reading by byte range or line range. Encoding options: utf-8, base64, hex. Only works within allowed directories.
read_multiple_filesRead multiple files simultaneously. More efficient than reading one by one. Returns each file's content with its path. Failed reads don't stop the operation. Only works within allowed directories.
write_fileCreate or overwrite a file. Caution: overwrites without warning. Handles text encoding. Only works within allowed directories.
edit_fileMake edits to text files. Supports text replacement, line-based operations (replace/insert/delete), and regex replacements. Returns git-style diff. Only works within allowed directories.
create_directoryCreate directory or ensure it exists. Creates nested directories. Succeeds silently if already exists. Only works within allowed directories.
list_directoryList files and directories in a path. Distinguished with [FILE] and [DIR] prefixes. Only works within allowed directories.
directory_treeGet recursive tree view as JSON. Each entry has name, type (file/directory), and children for directories. 2-space indented output. Only works within allowed directories.
move_fileMove or rename files and directories. Fails if destination exists. Both paths must be within allowed directories.
create_fileCreate a new file (alias for write_file). Creates or overwrites a file. Only works within allowed directories.
search_filesRecursively search files matching a pattern. Case-insensitive, partial name matching. Returns full paths. Only searches within allowed directories.
get_file_infoGet file/directory metadata: size, creation time, modified time, permissions, type. Only works within allowed directories.
list_allowed_directoriesList directories this server can access.
delete_fileDelete a file. This operation cannot be undone. Only works within allowed directories.
copy_fileCopy a file to a new location. Fails if destination exists unless overwrite is true. Both paths must be within allowed directories.
append_fileAppend content to the end of a file. Creates the file if it doesn't exist. Only works within allowed directories.
search_contentSearch for content within files. Supports plain text and regex search. Returns matching lines with file path and line number. Only searches within allowed directories.
batch_operationsExecute multiple file operations efficiently. Supports transactional mode (rollback on error) and parallel execution for read operations. Each operation result is returned individually.
watch_fileCheck for file changes since a specific time. Due to MCP constraints, this is a one-time check, not continuous monitoring. Returns list of changed files.
compress_filesCompress files into an archive. Supports zip, tar, and tar.gz formats. Requires appropriate tools (zip/tar) to be installed on the system.
extract_archiveExtract files from an archive. Supports zip, tar, and tar.gz formats. Creates destination directory if it doesn't exist. Requires appropriate tools (unzip/tar) to be installed.
sonar_searchsonar_multi_searchPerforms multiple related searches simultaneously and returns combined results. Ideal for complex research questions that benefit from being broken down into simpler components. IMPORTANT: Each query should be a natural language question as a complete sentence, NOT keyword lists.
sonar_search_with_timeoutPerforms a natural language search with a strict timeout to ensure fast responses. IMPORTANT: Ask in natural language as a complete sentence, NOT as keyword lists.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions
minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern
minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments
BRAVE_API_KEY"": "YOUR_BRAVE_API_KEY"CUSTOM_USER_AGENT"": "YOUR_CUSTOM_USER_AGENT",GITHUB_PERSONAL_ACCESS_TOKEN"": "YOUR_DEFAULT_TOKEN",IGNORE_ROBOTS_TXT"": "false"PERPLEXITY_API_KEY"": "YOUR_PERPLEXITY_API_KEY"SHELLDependencies
11 dependencies, 2 flagged: puppeteer, @types/puppeteer
Tool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
142/142 tools missing one or more hints — puppeteer_navigate (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); puppeteer_screenshot (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); puppeteer_click (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +139 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool inputs are validated
3/6 tool handlers declare input schemas (50%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tests exist
No test files found
Add tests that exercise each declared tool.
Shell command execution
4 child_process/subprocess calls in production code — runs shell commands (test-filesystem.ts:17, test-shell-new.ts:60, src/shell/environment.ts:45)
Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.
Production dependencies are patched
0 critical, 5 high severity in production deps — @modelcontextprotocol/sdk@1.7.0 (high), @modelcontextprotocol/sdk@1.7.0 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/ukkz/claude-ts-mcps)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check