Claude TypeScript MCP Servers
Claude TypeScript MCP 서버
개발 지원을 위해 LLM을 사용하는 소프트웨어 개발자를 위한 모델 컨텍스트 프로토콜(MCP) 서버 모음입니다. 많은 개발자가 VSCode와 직접 통합되는 Cline을 선호하지만, Cline은 사용량 기반 API를 사용하기 때문에 사용량이 많을수록 비용이 많이 발생합니다. 이 프로젝트는 Claude Desktop 애플리케이션을 맞춤형 MCP 서버와 연결하여 Claude Pro 정액 구독을 활용하여, 변동 비용 없이 동등한 개발 지원 기능을 제공합니다.
일본어에 관해 설명하는 일: Cline에 대해 코드를 작성하면 API 크레짓트가 더 좋아져서 Claude Desktop + MCP를 사용할 수 있게 되었습니다.
개요
이 프로젝트는 Claude Desktop과 함께 사용하여 소프트웨어 개발 기능을 향상시킬 수 있는 여러 MCP 서버를 구현합니다.
Brave Search : Brave Search API를 사용하여 웹 검색 및 로컬 검색 기능을 제공합니다.
파일 시스템 : 보안 제한 사항이 있는 파일 시스템 작업을 가능하게 합니다.
Git : 저장소 관리를 위한 Git 기능을 제공합니다.
GitHub : GitHub 저장소, 이슈, 풀 리퀘스트 등과의 상호 작용을 지원합니다.
Shell : 제어된 환경에서 Shell 명령을 실행할 수 있습니다.
Puppeteer : Puppeteer를 통해 브라우저 자동화 및 웹 상호 작용을 활성화합니다.
가져오기 : URL에서 콘텐츠를 검색하고 HTML을 마크다운으로 변환하여 가독성을 향상시킵니다.
Related MCP server: MCP Tools
요구 사항
설치
저장소를 복제합니다.
지엑스피1
종속성 설치:
bun install
구성
Claude Desktop에서 이러한 MCP 서버를 사용하려면 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
}요청에서 특정 계정 프로필을 사용하려면 GitHub API 호출에 account_profile 매개변수를 추가하세요.
{
"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 요청에 대한 특정 사용자 에이전트 문자열을 정의할 수 있습니다. 이는 특정 웹사이트가 클라이언트 식별을 기반으로 액세스를 제한할 때 유용할 수 있습니다.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: 저장소 관리, 이슈, PR 등을 위한 GitHub API 통합src/shell.ts: 셸 명령 실행src/puppeteer.ts: 브라우저 자동화 및 웹 상호 작용src/fetch.ts: URL 콘텐츠 검색 및 HTML-마크다운 변환
GitHub MCP 서버는 모듈식 구조를 가지고 있습니다.
src/github/common/: 공통 유틸리티, 인터페이스 및 유형src/github/operations/: 다양한 GitHub API 작업 구현src/github/tools/: MCP 서버에 대한 도구 정의
새로운 기능을 추가하려면:
src디렉토리에 새로운 TypeScript 파일을 만듭니다.@modelcontextprotocol/sdk를 사용하여 MCP 서버를 구현합니다.Claude Desktop 구성에 새 서버를 추가합니다.
보안 고려 사항
파일 시스템과 셸 서버에는 무단 접근을 방지하기 위한 보안 조치가 포함되어 있습니다.
명령을 실행하기 전에 항상 사용자 입력을 검증하세요
파일 시스템 액세스를 위해 허용된 디렉토리를 구성할 때는 주의하세요.
쉘 서버에 대해 실행 가능한 명령을 제한하려면 allowlist 명령을 사용하십시오.
fetch 서버는 기본적으로 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