Skip to content

Commit 4aade95

Browse files
authored
Merge branch 'main' into adamj/contributing-docs
2 parents 9b6892d + c8fe7d9 commit 4aade95

4 files changed

Lines changed: 68 additions & 16 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,8 @@ Official integrations are maintained by companies building production ready MCP
259259
- <img height="12" width="12" src="https://linear.app/favicon.ico" alt="Linear Logo" /> **[Linear](https://linear.app/docs/mcp)** - Search, create, and update Linear issues, projects, and comments.
260260
- <img height="12" width="12" src="https://lingo.dev/favicon.ico" alt="Lingo.dev Logo" /> **[Lingo.dev](https://github.com/lingodotdev/lingo.dev/blob/main/mcp.md)** - Make your AI agent speak every language on the planet, using [Lingo.dev](https://lingo.dev) Localization Engine.
261261
- <img height="12" width="12" src="https://ligo.ertiqah.com/favicon.avif" alt="LiGo Logo" /> **[LinkedIn MCP Runner](https://github.com/ertiqah/linkedin-mcp-runner)** - Write, edit, and schedule LinkedIn posts right from ChatGPT and Claude with [LiGo](https://ligo.ertiqah.com/).
262+
- <img height="12" width="12" src="https://avatars.githubusercontent.com/u/175112039?s=200&v=4" alt="Linkup Logo" /> **[Linkup](https://github.com/LinkupPlatform/js-mcp-server)** - (JS version) MCP server that provides web search capabilities through Linkup's advanced search API. This server enables AI assistants and development tools to perform intelligent web searches with natural language queries.
263+
- <img height="12" width="12" src="https://avatars.githubusercontent.com/u/175112039?s=200&v=4" alt="Linkup Logo" /> **[Linkup](https://github.com/LinkupPlatform/python-mcp-server)** - (Python version) MCP server that provides web search capabilities through Linkup's advanced search API. This server enables AI assistants and development tools to perform intelligent web searches with natural language queries.
262264
- <img src="https://gornschool.com/gorn.png" alt="Lisply" width="12" height="12"> **[Lisply](https://github.com/gornskew/lisply-mcp)** - Flexible frontend for compliant Lisp-speaking backends.
263265
- <img height="12" width="12" src="https://litmus.io/favicon.ico" alt="Litmus.io Logo" /> **[Litmus.io](https://github.com/litmusautomation/litmus-mcp-server)** - Official MCP server for configuring [Litmus](https://litmus.io) Edge for Industrial Data Collection, Edge Analytics & Industrial AI.
264266
- <img height="12" width="12" src="https://liveblocks.io/favicon.ico" alt="Liveblocks Logo" /> **[Liveblocks](https://github.com/liveblocks/liveblocks-mcp-server)** - Ready‑made features for AI & human collaboration—use this to develop your [Liveblocks](https://liveblocks.io) app quicker.
@@ -412,6 +414,7 @@ Official integrations are maintained by companies building production ready MCP
412414
- <img height="12" width="12" src="https://www.pingcap.com/favicon.ico" alt="TiDB Logo" /> **[TiDB](https://github.com/pingcap/pytidb)** - MCP Server to interact with TiDB database platform.
413415
- <img height="12" width="12" src="https://www.tinybird.co/favicon.ico" alt="Tinybird Logo" /> **[Tinybird](https://github.com/tinybirdco/mcp-tinybird)** - Interact with Tinybird serverless ClickHouse platform
414416
- <img height="12" width="12" src="https://b2729162.smushcdn.com/2729162/wp-content/uploads/2023/10/cropped-Favicon-1-192x192.png?lossy=1&strip=1&webp=1" alt="Tldv Logo" /> **[Tldv](https://gitlab.com/tldv/tldv-mcp-server)** - Connect your AI agents to Google-Meet, Zoom & Microsoft Teams through [tl;dv](https://tldv.io)
417+
- <img height="12" width="12" src="https://www.todoist.com/static/favicon-32x32.png" alt="Todoist Logo" /> **[Todoist](https://github.com/doist/todoist-ai)** - Search, add, and update [Todoist](https://todoist.com) tasks, projects, sections, comments, and more.
415418
- <img height="12" width="12" src="https://cdn.tokenmetrics.com/logo.svg" alt="Token Metrics Logo" /> **[Token Metrics](https://github.com/token-metrics/mcp)** - [Token Metrics](https://www.tokenmetrics.com/) integration for fetching real-time crypto market data, trading signals, price predictions, and advanced analytics.
416419
- <img height="12" width="12" src="https://di8m9w6rqrh5d.cloudfront.net/2G3TRwfv1w3GTLfmT7Dmco1VddoFTI5P/1920_6b7e7ec2-d897-4cd7-94f3-46a8301212c3.png" alt="TomTom Logo" /> **[TomTom-MCP](https://github.com/tomtom-international/tomtom-mcp)** - The [TomTom](https://www.tomtom.com/) MCP Server simplifies geospatial development by providing seamless access to TomTom's location services, including search, routing, traffic and static maps data.
417420
- <img height="12" width="12" src="https://images.thetradeagent.ai/trade_agent/logo.svg" alt="Trade Agent Logo" /> **[Trade Agent](https://github.com/Trade-Agent/trade-agent-mcp)** - Execute stock and crypto trades on your brokerage via [Trade Agent](https://thetradeagent.ai)
@@ -573,6 +576,7 @@ A growing set of community-developed and maintained servers demonstrates various
573576
- **[coin_api_mcp](https://github.com/longmans/coin_api_mcp)** - Provides access to [coinmarketcap](https://coinmarketcap.com/) cryptocurrency data.
574577
- **[CoinMarketCap](https://github.com/shinzo-labs/coinmarketcap-mcp)** - Implements the complete [CoinMarketCap](https://coinmarketcap.com/) API for accessing cryptocurrency market data, exchange information, and other blockchain-related metrics.
575578
- **[commands](https://github.com/g0t4/mcp-server-commands)** - Run commands and scripts. Just like in a terminal.
579+
- **[Companies House MCP](https://github.com/stefanoamorelli/companies-house-mcp)** (by Stefano Amorelli) - MCP server to connect with the UK Companies House API.
576580
- **[computer-control-mcp](https://github.com/AB498/computer-control-mcp)** - MCP server that provides computer control capabilities, like mouse, keyboard, OCR, etc. using PyAutoGUI, RapidOCR, ONNXRuntime Without External Dependencies.
577581
- **[Computer-Use - Remote MacOS Use](https://github.com/baryhuang/mcp-remote-macos-use)** - Open-source out-of-the-box alternative to OpenAI Operator, providing a full desktop experience and optimized for using remote macOS machines as autonomous AI agents.
578582
- **[Congress.gov API](https://github.com/AshwinSundar/congress_gov_mcp)** - An MCP server to interact with real-time data from the Congress.gov API, which is the official API for the United States Congress.
@@ -632,6 +636,7 @@ A growing set of community-developed and maintained servers demonstrates various
632636
- **[Docker](https://github.com/ckreiling/mcp-server-docker)** - Integrate with Docker to manage containers, images, volumes, and networks.
633637
- **[Docker](https://github.com/0xshariq/docker-mcp-server)** - Docker MCP Server provides advanced, unified Docker management via CLI and MCP workflows, supporting containers, images, volumes, networks, and orchestration.
634638
- **[Docs](https://github.com/da1z/docsmcp)** - Enable documentation access for the AI agent, supporting llms.txt and other remote or local files.
639+
- **[documcp](https://github.com/tosin2013/documcp)** - An MCP server for intelligent document processing and management, supporting multiple formats and document operations.
635640
- **[Docy](https://github.com/oborchers/mcp-server-docy)** - Docy gives your AI direct access to the technical documentation it needs, right when it needs it. No more outdated information, broken links, or rate limits - just accurate, real-time documentation access for more precise coding assistance.
636641
- **[Dodo Payments](https://github.com/dodopayments/dodopayments-node/tree/main/packages/mcp-server)** - Enables AI agents to securely perform payment operations via a lightweight, serverless-compatible interface to the [Dodo Payments](https://dodopayments.com) API.
637642
- **[Domain Tools](https://github.com/deshabhishek007/domain-tools-mcp-server)** - A Model Context Protocol (MCP) server for comprehensive domain analysis: WHOIS, DNS records, and DNS health checks.
@@ -1153,6 +1158,7 @@ A growing set of community-developed and maintained servers demonstrates various
11531158
- **[Trello MCP Server](https://github.com/lioarce01/trello-mcp-server)** - An MCP server that interact with user Trello boards, modifying them with prompting.
11541159
- **[Trino](https://github.com/tuannvm/mcp-trino)** - A high-performance Model Context Protocol (MCP) server for Trino implemented in Go.
11551160
- **[Tripadvisor](https://github.com/pab1it0/tripadvisor-mcp)** - An MCP server that enables LLMs to interact with Tripadvisor API, supporting location data, reviews, and photos through standardized MCP interfaces
1161+
- **[Triplyfy MCP](https://github.com/helpful-AIs/triplyfy-mcp)** - An MCP server that lets LLMs plan and manage itineraries with interactive maps in Triplyfy; manage itineraries, places and notes, and search/save flights.
11561162
- **[TrueNAS Core MCP](https://github.com/vespo92/TrueNasCoreMCP)** - An MCP server for interacting with TrueNAS Core.
11571163
- **[TuriX Computer Automation MCP](https://github.com/TurixAI/TuriX-CUA/tree/mac_mcp)** - MCP server for helping automation control your computer complete your pre-setting task.
11581164
- **[Tyk API Management](https://github.com/TykTechnologies/tyk-dashboard-mcp)** - Chat with all of your organization's managed APIs and perform other API lifecycle operations, managing tokens, users, analytics, and more.

src/filesystem/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,10 @@ const ReadMediaFileArgsSchema = z.object({
8888
});
8989

9090
const ReadMultipleFilesArgsSchema = z.object({
91-
paths: z.array(z.string()),
91+
paths: z
92+
.array(z.string())
93+
.min(1, "At least one file path must be provided")
94+
.describe("Array of file paths to read. Each path must be a string pointing to a valid file within allowed directories."),
9295
});
9396

9497
const WriteFileArgsSchema = z.object({

src/git/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,12 @@ Please note that mcp-server-git is currently in early development. The functiona
5757
- Returns: Confirmation of reset operation
5858

5959
8. `git_log`
60-
- Shows the commit logs
60+
- Shows the commit logs with optional date filtering
6161
- Inputs:
6262
- `repo_path` (string): Path to Git repository
6363
- `max_count` (number, optional): Maximum number of commits to show (default: 10)
64+
- `start_timestamp` (string, optional): Start timestamp for filtering commits. Accepts ISO 8601 format (e.g., '2024-01-15T14:30:25'), relative dates (e.g., '2 weeks ago', 'yesterday'), or absolute dates (e.g., '2024-01-15', 'Jan 15 2024')
65+
- `end_timestamp` (string, optional): End timestamp for filtering commits. Accepts ISO 8601 format (e.g., '2024-01-15T14:30:25'), relative dates (e.g., '2 weeks ago', 'yesterday'), or absolute dates (e.g., '2024-01-15', 'Jan 15 2024')
6466
- Returns: Array of commit entries with hash, author, date, and message
6567

6668
9. `git_create_branch`

src/git/src/mcp_server_git/server.py

Lines changed: 55 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,14 @@ class GitReset(BaseModel):
4848
class GitLog(BaseModel):
4949
repo_path: str
5050
max_count: int = 10
51+
start_timestamp: Optional[str] = Field(
52+
None,
53+
description="Start timestamp for filtering commits. Accepts: ISO 8601 format (e.g., '2024-01-15T14:30:25'), relative dates (e.g., '2 weeks ago', 'yesterday'), or absolute dates (e.g., '2024-01-15', 'Jan 15 2024')"
54+
)
55+
end_timestamp: Optional[str] = Field(
56+
None,
57+
description="End timestamp for filtering commits. Accepts: ISO 8601 format (e.g., '2024-01-15T14:30:25'), relative dates (e.g., '2 weeks ago', 'yesterday'), or absolute dates (e.g., '2024-01-15', 'Jan 15 2024')"
58+
)
5159

5260
class GitCreateBranch(BaseModel):
5361
repo_path: str
@@ -83,6 +91,7 @@ class GitBranch(BaseModel):
8391
description="The commit sha that branch should NOT contain. Do not pass anything to this param if no commit sha is specified",
8492
)
8593

94+
8695
class GitTools(str, Enum):
8796
STATUS = "git_status"
8897
DIFF_UNSTAGED = "git_diff_unstaged"
@@ -125,17 +134,41 @@ def git_reset(repo: git.Repo) -> str:
125134
repo.index.reset()
126135
return "All staged changes reset"
127136

128-
def git_log(repo: git.Repo, max_count: int = 10) -> list[str]:
129-
commits = list(repo.iter_commits(max_count=max_count))
130-
log = []
131-
for commit in commits:
132-
log.append(
133-
f"Commit: {commit.hexsha!r}\n"
134-
f"Author: {commit.author!r}\n"
135-
f"Date: {commit.authored_datetime}\n"
136-
f"Message: {commit.message!r}\n"
137-
)
138-
return log
137+
def git_log(repo: git.Repo, max_count: int = 10, start_timestamp: Optional[str] = None, end_timestamp: Optional[str] = None) -> list[str]:
138+
if start_timestamp or end_timestamp:
139+
# Use git log command with date filtering
140+
args = []
141+
if start_timestamp:
142+
args.extend(['--since', start_timestamp])
143+
if end_timestamp:
144+
args.extend(['--until', end_timestamp])
145+
args.extend(['--format=%H%n%an%n%ad%n%s%n'])
146+
147+
log_output = repo.git.log(*args).split('\n')
148+
149+
log = []
150+
# Process commits in groups of 4 (hash, author, date, message)
151+
for i in range(0, len(log_output), 4):
152+
if i + 3 < len(log_output) and len(log) < max_count:
153+
log.append(
154+
f"Commit: {log_output[i]}\n"
155+
f"Author: {log_output[i+1]}\n"
156+
f"Date: {log_output[i+2]}\n"
157+
f"Message: {log_output[i+3]}\n"
158+
)
159+
return log
160+
else:
161+
# Use existing logic for simple log without date filtering
162+
commits = list(repo.iter_commits(max_count=max_count))
163+
log = []
164+
for commit in commits:
165+
log.append(
166+
f"Commit: {commit.hexsha!r}\n"
167+
f"Author: {commit.author!r}\n"
168+
f"Date: {commit.authored_datetime}\n"
169+
f"Message: {commit.message!r}\n"
170+
)
171+
return log
139172

140173
def git_create_branch(repo: git.Repo, branch_name: str, base_branch: str | None = None) -> str:
141174
if base_branch:
@@ -203,6 +236,7 @@ def git_branch(repo: git.Repo, branch_type: str, contains: str | None = None, no
203236

204237
return branch_info
205238

239+
206240
async def serve(repository: Path | None) -> None:
207241
logger = logging.getLogger(__name__)
208242

@@ -283,6 +317,7 @@ async def list_tools() -> list[Tool]:
283317
name=GitTools.BRANCH,
284318
description="List Git branches",
285319
inputSchema=GitBranch.model_json_schema(),
320+
286321
)
287322
]
288323

@@ -380,13 +415,19 @@ async def call_tool(name: str, arguments: dict) -> list[TextContent]:
380415
text=result
381416
)]
382417

418+
# Update the LOG case:
383419
case GitTools.LOG:
384-
log = git_log(repo, arguments.get("max_count", 10))
420+
log = git_log(
421+
repo,
422+
arguments.get("max_count", 10),
423+
arguments.get("start_timestamp"),
424+
arguments.get("end_timestamp")
425+
)
385426
return [TextContent(
386427
type="text",
387428
text="Commit history:\n" + "\n".join(log)
388429
)]
389-
430+
390431
case GitTools.CREATE_BRANCH:
391432
result = git_create_branch(
392433
repo,
@@ -423,7 +464,7 @@ async def call_tool(name: str, arguments: dict) -> list[TextContent]:
423464
type="text",
424465
text=result
425466
)]
426-
467+
427468
case _:
428469
raise ValueError(f"Unknown tool: {name}")
429470

0 commit comments

Comments
 (0)