Claude TypeScript MCP Servers
Claude TypeScript MCP 服务器
一系列模型上下文协议 (MCP) 服务器,面向使用 LLM 进行开发辅助的软件开发者。虽然许多开发者更喜欢 Cline,因为它可以直接集成 VSCode,但它使用按次付费的 API,使用量大时成本会更高。该项目利用 Claude Pro 的固定费率订阅,将 Claude Desktop 应用程序与自定义 MCP 服务器连接起来,提供相当的开发辅助功能,而无需支付可变成本。
日本语による解说记事:Cline任せでコード书いてたらAPIkureジットが爆散したのでClaude Desktop + MCPをい感じにしてサブsukuだけで无双する
概述
该项目实现了多个 MCP 服务器,可与 Claude Desktop 一起使用以增强其软件开发能力:
Brave Search :使用 Brave Search API 提供网页搜索和本地搜索功能
文件系统:启用具有安全限制的文件系统操作
Git :提供用于管理存储库的 Git 功能
GitHub :支持与 GitHub 存储库、问题、拉取请求等进行交互
Shell :允许在受控环境中执行 shell 命令
Puppeteer :通过 Puppeteer 实现浏览器自动化和 Web 交互
Fetch :从 URL 中检索内容并将 HTML 转换为 Markdown,以提高可读性
Related MCP server: MCP Tools
要求
安装
克隆存储库:
git clone https://github.com/yourusername/claude-ts-mcps.git cd claude-ts-mcps安装依赖项:
bun install
配置
要将这些 MCP 服务器与 Claude Desktop 一起使用,您需要创建一个配置文件,告诉 Claude 如何连接它们。以下是示例配置:
{
"mcpServers": {
"brave-search": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/brave-search.ts"
],
"env": {
"BRAVE_API_KEY": "YOUR_BRAVE_API_KEY"
}
},
"filesystem": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/filesystem.ts",
"/Users/username"
]
},
"git": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/git.ts"
]
},
"github": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/github.ts"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_DEFAULT_TOKEN",
"GITHUB_TOKEN_WORK": "YOUR_WORK_ACCOUNT_TOKEN",
"GITHUB_TOKEN_PERSONAL": "YOUR_PERSONAL_ACCOUNT_TOKEN"
}
},
"shell": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/shell.ts"
]
},
"puppeteer": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/puppeteer.ts"
]
},
"fetch": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/fetch.ts"
],
"env": {
"CUSTOM_USER_AGENT": "YOUR_CUSTOM_USER_AGENT", // Optional
"IGNORE_ROBOTS_TXT": "false" // Optional, set to true to ignore robots.txt
}
}
}
}将此配置保存为claude_desktop_config.json并配置 Claude Desktop 以使用它。
多 GitHub 帐户支持
GitHub MCP 服务器支持在多个 GitHub 帐户之间切换。您可以通过配置环境变量来设置多个帐户配置文件:
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_DEFAULT_TOKEN", // Default account (backward compatible)
"GITHUB_TOKEN_WORK": "YOUR_WORK_ACCOUNT_TOKEN", // Work account profile
"GITHUB_TOKEN_PERSONAL": "YOUR_PERSONAL_ACCOUNT_TOKEN" // Personal account profile
}要在请求中使用特定的帐户配置文件,请将account_profile参数添加到任何 GitHub API 调用:
{
"owner": "username",
"repo": "repo-name",
"path": "path/to/file.txt",
"account_profile": "work" // Will use the GITHUB_TOKEN_WORK environment variable
}如果没有指定account_profile ,则将使用默认的GITHUB_PERSONAL_ACCESS_TOKEN 。
获取服务器配置
Fetch MCP 服务器通过环境变量提供自定义选项:
"env": {
"CUSTOM_USER_AGENT": "YOUR_CUSTOM_USER_AGENT", // Optional: Specify a custom User-Agent header
"IGNORE_ROBOTS_TXT": "false" // Optional: Set to "true" to bypass robots.txt rules
}CUSTOM_USER_AGENT:允许您为 HTTP 请求定义特定的 User-Agent 字符串,当某些网站根据客户端标识限制访问时,此功能很有用。IGNORE_ROBOTS_TXT:默认情况下 (false),抓取服务器会遵循网站设置的 robots.txt 规则(用于控制网络爬虫)。将其设置为“true”可禁用此限制,但应谨慎使用。
用法
启动 Claude Desktop
加载配置文件
Claude 现在可以访问这些 MCP 服务器提供的附加工具
发展
每个 MCP 服务器都作为src目录中的独立 TypeScript 文件实现:
src/brave-search.ts:Brave Search API 集成src/filesystem.ts:文件系统操作src/git.ts:Git 操作src/github.ts:GitHub API 集成,用于存储库管理、问题、PR 等。src/shell.ts:Shell 命令执行src/puppeteer.ts:浏览器自动化和 Web 交互src/fetch.ts:URL 内容检索和 HTML 到 Markdown 的转换
GitHub MCP 服务器具有模块化结构:
src/github/common/:常用实用程序、接口和类型src/github/operations/:实现各种 GitHub API 操作src/github/tools/:MCP 服务器的工具定义
要添加新功能:
在
src目录中创建一个新的 TypeScript 文件使用
@modelcontextprotocol/sdk实现MCP服务器将新服务器添加到您的 Claude Desktop 配置中
安全注意事项
文件系统和 shell 服务器包括安全措施,以防止未经授权的访问
执行命令前始终验证用户输入
配置文件系统访问的允许目录时要小心谨慎
使用shell服务器的命令允许列表来限制可执行命令
抓取服务器默认遵守 robots.txt 指令,以防止抓取受限网站
安全存储您的 GitHub 个人访问令牌并使用适当的令牌权限
参考
执照
Available Tools
2 toolsbrave_local_searchA
Finds information about local businesses, services, attractions, and locations with real-time data. Use this tool proactively whenever a query mentions specific places or location-based information. This is especially useful for questions about restaurants, shops, tourist attractions, local services, or any place-based inquiry. You should automatically search when users ask about places 'near' somewhere, business hours, local reviews, addresses, or location details that would benefit from current information. This provides much more accurate and up-to-date information than your built-in knowledge.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results (1-20, default 5) | |
| query | Yes | Local search query (e.g. 'pizza near Central Park') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: it's a search tool (implying read-only, non-destructive), uses real-time data, and is proactive/automatic for certain queries. However, it doesn't mention rate limits, authentication needs, or error conditions, leaving some behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose. However, it includes some redundancy (e.g., repeating location-based examples) and could be slightly more streamlined without losing clarity. Every sentence adds value, but it's not maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is largely complete. It covers purpose, usage, and behavioral context well. The main gap is the lack of output format details, which is significant since there's no output schema, but the description compensates somewhat by emphasizing the type of information returned (real-time data about places).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter-specific details beyond what's in the schema (e.g., it doesn't explain 'query' format beyond the schema's example or 'count' constraints beyond the schema's range). This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('finds information') and resources ('local businesses, services, attractions, locations'), and explicitly distinguishes it from its sibling tool by emphasizing its focus on real-time local data versus the broader 'brave_web_search'. It provides concrete examples of what it searches for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('whenever a query mentions specific places or location-based information') and provides detailed examples of use cases (e.g., questions about restaurants, 'near' queries, business hours). It also contrasts with alternatives by noting it provides 'more accurate and up-to-date information than your built-in knowledge', though it doesn't explicitly name the sibling tool as an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brave_web_searchA
Retrieves up-to-date information from the web using Brave Search. You should proactively use this tool whenever you need current information beyond your knowledge cutoff, when answering questions about recent events, when asked about specific facts you're uncertain about, or when providing comprehensive answers. Search automatically when you suspect information might be outdated or when greater detail would improve your response. Use this for news, technical information, current events, product details, or any topic where fresh, accurate data would enhance your answer quality.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results (1-20, default 10) | |
| offset | No | Pagination offset (max 9, default 0) | |
| query | Yes | Search query (max 400 chars, 50 words) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool retrieves 'up-to-date information' and should be used for 'fresh, accurate data,' which implies real-time capabilities but doesn't detail rate limits, authentication needs, or error handling. It adds some context but lacks comprehensive behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose. However, it includes repetitive phrases like 'when you need current information' and 'when greater detail would improve your response,' which could be more concise without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (web search with three parameters) and no output schema, the description is fairly complete. It covers purpose, usage guidelines, and context, but lacks details on output format or error handling, which would enhance completeness for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters (query, count, offset) with their descriptions. The tool description doesn't add any additional meaning or examples beyond what the schema provides, such as search strategy or query formatting tips, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieves up-to-date information from the web using Brave Search.' It specifies the verb ('retrieves'), resource ('information from the web'), and distinguishes it from the sibling tool 'brave_local_search' by emphasizing web-based, current information rather than local data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool, listing specific scenarios such as needing current information beyond knowledge cutoff, answering questions about recent events, or when greater detail would improve responses. It also implicitly distinguishes from alternatives by focusing on web search, though it doesn't explicitly name when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
brave_local_search - First observed
brave_web_search
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: brave_local_search is focused on location-based queries for businesses, services, and attractions, while brave_web_search handles general web searches for current events, news, and broader information. There is no overlap in their intended use cases, making it easy for an agent to choose the correct tool based on the query type.
Both tools follow a consistent naming pattern with the prefix 'brave_' followed by a descriptive term ('local_search' and 'web_search'), using snake_case throughout. This uniformity makes the tool set predictable and easy to understand, with no deviations in style or structure.
With only two tools, the server feels thin for a general-purpose search functionality, as it might lack coverage for specific domains or advanced search capabilities. While the tools are well-defined, a broader scope could benefit from additional tools to handle more nuanced search types or integrations, making the count borderline for the apparent purpose.
The tool set covers the core search needs with local and web search, providing a good foundation for real-time information retrieval. However, there are minor gaps, such as the absence of tools for specialized searches (e.g., image, video, or academic searches) or advanced filtering options, which agents might need to work around for more complex queries.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA comprehensive suite of Model Context Protocol servers designed to extend AI agent Claude's capabilities with integrations for knowledge management, reasoning, advanced search, news access, and workspace tools.5-
- AlicenseNot gradedqualityDmaintenanceA custom Model Context Protocol server that gives Claude Desktop and other LLMs access to file system operations and command execution capabilities through standardized tool interfaces.23Apache 2.0
- FlicenseNot gradedqualityDmaintenanceIntegration project for Model Context Protocol (MCP) servers with Claude Desktop App, enabling filesystem operations, development support, and file management through natural language.-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables Claude Desktop to perform file operations like reading, writing, listing directories, and managing files through natural language commands.MIT