Skip to content

Commit 38516c1

Browse files
Merge branch 'main' into jerome/feature/added-frameworks-subsections
2 parents f317813 + b044907 commit 38516c1

File tree

15 files changed

+106
-18
lines changed

15 files changed

+106
-18
lines changed

README.md

+10-2
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ Official integrations are maintained by companies building production ready MCP
4646
- <img height="12" width="12" src="https://esignatures.com/favicon.ico" alt="eSignatures Logo" /> **[eSignatures](https://github.com/esignaturescom/mcp-server-esignatures)** - Contract and template management for drafting, reviewing, and sending binding contracts.
4747
- <img height="12" width="12" src="https://exa.ai/images/favicon-32x32.png" alt="Exa Logo" /> **[Exa](https://github.com/exa-labs/exa-mcp-server)** - Search Engine made for AIs by [Exa](https://exa.ai)
4848
- <img height="12" width="12" src="https://fireproof.storage/favicon.ico" alt="Fireproof Logo" /> **[Fireproof](https://github.com/fireproof-storage/mcp-database-server)** - Immutable ledger database with live synchronization
49-
- **[IBM wxflows](https://github.com/IBM/wxflows/tree/main/examples/mcp/javascript)** - Tool platform by IBM to build, test and deploy tools for any data source
5049
- <img height="12" width="12" src="https://grafana.com/favicon.ico" alt="Grafana Logo" /> **[Grafana](https://github.com/grafana/mcp-grafana)** - Search dashboards, investigate incidents and query datasources in your Grafana instance
50+
- **[IBM wxflows](https://github.com/IBM/wxflows/tree/main/examples/mcp/javascript)** - Tool platform by IBM to build, test and deploy tools for any data source
51+
- <img height="12" width="12" src="https://integration.app/favicon.ico" alt="Integration App Icon" /> **[Integration App](https://github.com/integration-app/mcp-server)** - Interact with any other SaaS applications on behalf of your customers.
5152
- <img height="12" width="12" src="https://cdn.simpleicons.org/jetbrains" /> **[JetBrains](https://github.com/JetBrains/mcp-jetbrains)** – Work on your code with JetBrains IDEs
5253
- <img height="12" width="12" src="https://kagi.com/favicon.ico" alt="Kagi Logo" /> **[Kagi Search](https://github.com/kagisearch/kagimcp)** - Search the web using Kagi's search API
5354
- <img height="12" width="12" src="https://www.meilisearch.com/favicon.ico" alt="Meilisearch Logo" /> **[Meilisearch](https://github.com/meilisearch/meilisearch-mcp)** - Interact & query with Meilisearch (Full-text & semantic search API)
@@ -79,6 +80,7 @@ A growing set of community-developed and maintained servers demonstrates various
7980
- **[Atlassian](https://github.com/sooperset/mcp-atlassian)** - Interact with Atlassian Cloud products (Confluence and Jira) including searching/reading Confluence spaces/pages, accessing Jira issues, and project metadata.
8081
- **[BigQuery](https://github.com/LucasHild/mcp-server-bigquery)** (by LucasHild) - This server enables LLMs to inspect database schemas and execute queries on BigQuery.
8182
- **[BigQuery](https://github.com/ergut/mcp-bigquery-server)** (by ergut) - Server implementation for Google BigQuery integration that enables direct BigQuery database access and querying capabilities
83+
- **[CFBD API](https://github.com/lenwood/cfbd-mcp-server)** - An MCP server for the [College Football Data API](https://collegefootballdata.com/).
8284
- **[ChatMCP](https://github.com/AI-QL/chat-mcp)** – An Open Source Cross-platform GUI Desktop application compatible with Linux, macOS, and Windows, enabling seamless interaction with MCP servers across dynamically selectable LLMs, by **[AIQL](https://github.com/AI-QL)**
8385
- **[ChatSum](https://github.com/mcpso/mcp-server-chatsum)** - Query and Summarize chat messages with LLM. by [mcpso](https://mcp.so)
8486
- **[Chroma](https://github.com/privetin/chroma)** - Vector database server for semantic document search and metadata filtering, built on Chroma
@@ -97,11 +99,13 @@ A growing set of community-developed and maintained servers demonstrates various
9799
- **[Docker](https://github.com/ckreiling/mcp-server-docker)** - Integrate with Docker to manage containers, images, volumes, and networks.
98100
- **[Drupal](https://github.com/Omedia/mcp-server-drupal)** - Server for interacting with [Drupal](https://www.drupal.org/project/mcp) using STDIO transport layer.
99101
- **[Elasticsearch](https://github.com/cr7258/elasticsearch-mcp-server)** - MCP server implementation that provides Elasticsearch interaction.
102+
- **[ElevenLabs](https://github.com/mamertofabian/elevenlabs-mcp-server)** - A server that integrates with ElevenLabs text-to-speech API capable of generating full voiceovers with multiple voices.
100103
- **[Fetch](https://github.com/zcaceres/fetch-mcp)** - A server that flexibly fetches HTML, JSON, Markdown, or plaintext.
101104
- **[FireCrawl](https://github.com/vrknetha/mcp-server-firecrawl)** - Advanced web scraping with JavaScript rendering, PDF support, and smart rate limiting
102105
- **[FlightRadar24](https://github.com/sunsetcoder/flightradar24-mcp-server)** - A Claude Desktop MCP server that helps you track flights in real-time using Flightradar24 data.
103106
- **[Glean](https://github.com/longyi1207/glean-mcp-server)** - A server that uses Glean API to search and chat.
104107
- **[Goal Story](https://github.com/hichana/goalstory-mcp)** - a Goal Tracker and Visualization Tool for personal and professional development.
108+
- **[Golang Filesystem Server](https://github.com/mark3labs/mcp-filesystem-server)** - Secure file operations with configurable access controls built with Go!
105109
- **[Google Calendar](https://github.com/v-3/google-calendar)** - Integration with Google Calendar to check schedules, find time, and add/delete events
106110
- **[Google Tasks](https://github.com/zcaceres/gtasks-mcp)** - Google Tasks API Model Context Protocol Server.
107111
- **[Home Assistant](https://github.com/tevonsb/homeassistant-mcp)** - Interact with [Home Assistant](https://www.home-assistant.io/) including viewing and controlling lights, switches, sensors, and all other Home Assistant entities.
@@ -125,19 +129,23 @@ A growing set of community-developed and maintained servers demonstrates various
125129
- **[Notion](https://github.com/v-3/notion-server)** (by v-3) - Notion MCP integration. Search, Read, Update, and Create pages through Claude chat.
126130
- **[oatpp-mcp](https://github.com/oatpp/oatpp-mcp)** - C++ MCP integration for Oat++. Use [Oat++](https://oatpp.io) to build MCP servers.
127131
- **[Obsidian Markdown Notes](https://github.com/calclavia/mcp-obsidian)** - Read and search through your Obsidian vault or any directory containing Markdown notes
132+
- **[obsidian-mcp](https://github.com/StevenStavrakis/obsidian-mcp)** - (by Steven Stavrakis) An MCP server for Obsidian.md with tools for searching, reading, writing, and organizing notes.
128133
- **[OpenAPI](https://github.com/snaggle-ai/openapi-mcp-server)** - Interact with [OpenAPI](https://www.openapis.org/) APIs.
129134
- **[OpenCTI](https://github.com/Spathodea-Network/opencti-mcp)** - Interact with OpenCTI platform to retrieve threat intelligence data including reports, indicators, malware and threat actors.
130135
- **[OpenRPC](https://github.com/shanejonas/openrpc-mpc-server)** - Interact with and discover JSON-RPC APIs via [OpenRPC](https://open-rpc.org).
131136
- **[Open Strategy Partners Marketing Tools](https://github.com/open-strategy-partners/osp_marketing_tools)** - Content editing codes, value map, and positioning tools for product marketing.
132-
- **[Pandoc](https://github.com/vivekVells/mcp-pandoc)** - MCP server for seamless document format conversion using Pandoc, supporting Markdown, HTML, and plain text, with other formats like PDF, csv and docx in development.
137+
- **[Pandoc](https://github.com/vivekVells/mcp-pandoc)** - MCP server for seamless document format conversion using Pandoc, supporting Markdown, HTML, PDF, DOCX (.docx), csv and more.
133138
- **[Pinecone](https://github.com/sirmews/mcp-pinecone)** - MCP server for searching and uploading records to Pinecone. Allows for simple RAG features, leveraging Pinecone's Inference API.
134139
- **[Placid.app](https://github.com/felores/placid-mcp-server)** - Generate image and video creatives using Placid.app templates
135140
- **[Playwright](https://github.com/executeautomation/mcp-playwright)** - This MCP Server will help you run browser automation and webscraping using Playwright
136141
- **[Postman](https://github.com/shannonlal/mcp-postman)** - MCP server for running Postman Collections locally via Newman. Allows for simple execution of Postman Server and returns the results of whether the collection passed all the tests.
142+
- **[Reaper](https://github.com/dschuler36/reaper-mcp-server)** - Interact with your [Reaper](https://www.reaper.fm/) (Digital Audio Workstation) projects.
137143
- **[RAG Web Browser](https://github.com/apify/mcp-server-rag-web-browser)** An MCP server for Apify's open-source RAG Web Browser [Actor](https://apify.com/apify/rag-web-browser) to perform web searches, scrape URLs, and return content in Markdown.
138144
- **[Rememberizer AI](https://github.com/skydeckai/mcp-server-rememberizer)** - An MCP server designed for interacting with the Rememberizer data source, facilitating enhanced knowledge retrieval.
145+
- **[Rijksmuseum](https://github.com/r-huijts/rijksmuseum-mcp)** - Interface with the Rijksmuseum API to search artworks, retrieve artwork details, access image tiles, and explore user collections.
139146
- **[Salesforce MCP](https://github.com/smn2gnt/MCP-Salesforce)** - Interact with Salesforce Data and Metadata
140147
- **[Scholarly](https://github.com/adityak74/mcp-scholarly)** - A MCP server to search for scholarly and academic articles.
148+
- **[SearXNG](https://github.com/ihor-sokoliuk/mcp-searxng)** - A Model Context Protocol Server for [SearXNG](https://docs.searxng.org)
141149
- **[Snowflake](https://github.com/isaacwasserman/mcp-snowflake-server)** - This MCP server enables LLMs to interact with Snowflake databases, allowing for secure and controlled data operations.
142150
- **[Spotify](https://github.com/varunneal/spotify-mcp)** - This MCP allows an LLM to play and use Spotify.
143151
- **[TMDB](https://github.com/Laksh-star/mcp-server-tmdb)** - This MCP server integrates with The Movie Database (TMDB) API to provide movie information, search capabilities, and recommendations.

src/everything/package.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
"scripts": {
1717
"build": "tsc && shx chmod +x dist/*.js",
1818
"prepare": "npm run build",
19-
"watch": "tsc --watch"
19+
"watch": "tsc --watch",
20+
"start": "node dist/index.js",
21+
"start:sse": "node dist/sse.js"
2022
},
2123
"dependencies": {
2224
"@modelcontextprotocol/sdk": "1.0.1",

src/gdrive/index.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
import fs from "fs";
1313
import { google } from "googleapis";
1414
import path from "path";
15+
import { fileURLToPath } from 'url';
1516

1617
const drive = google.drive("v3");
1718

@@ -176,15 +177,15 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
176177
});
177178

178179
const credentialsPath = process.env.GDRIVE_CREDENTIALS_PATH || path.join(
179-
path.dirname(new URL(import.meta.url).pathname),
180+
path.dirname(fileURLToPath(import.meta.url)),
180181
"../../../.gdrive-server-credentials.json",
181182
);
182183

183184
async function authenticateAndSaveCredentials() {
184185
console.log("Launching auth flow…");
185186
const auth = await authenticate({
186187
keyfilePath: process.env.GDRIVE_OAUTH_PATH || path.join(
187-
path.dirname(new URL(import.meta.url).pathname),
188+
path.dirname(fileURLToPath(import.meta.url)),
188189
"../../../gcp-oauth.keys.json",
189190
),
190191
scopes: ["https://www.googleapis.com/auth/drive.readonly"],

src/git/README.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,23 @@ Please note that mcp-server-git is currently in early development. The functiona
6767
- `branch_name` (string): Name of the new branch
6868
- `start_point` (string, optional): Starting point for the new branch
6969
- Returns: Confirmation of branch creation
70-
8. `git_checkout`
70+
10. `git_checkout`
7171
- Switches branches
7272
- Inputs:
7373
- `repo_path` (string): Path to Git repository
7474
- `branch_name` (string): Name of branch to checkout
7575
- Returns: Confirmation of branch switch
76-
9. `git_show`
76+
11. `git_show`
7777
- Shows the contents of a commit
7878
- Inputs:
7979
- `repo_path` (string): Path to Git repository
8080
- `revision` (string): The revision (commit hash, branch name, tag) to show
8181
- Returns: Contents of the specified commit
82+
12. `git_init`
83+
- Initializes a Git repository
84+
- Inputs:
85+
- `repo_path` (string): Path to directory to initialize git repo
86+
- Returns: Confirmation of repository initialization
8287

8388
## Installation
8489

src/git/src/mcp_server_git/server.py

+26
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ class GitShow(BaseModel):
5656
repo_path: str
5757
revision: str
5858

59+
class GitInit(BaseModel):
60+
repo_path: str
61+
5962
class GitTools(str, Enum):
6063
STATUS = "git_status"
6164
DIFF_UNSTAGED = "git_diff_unstaged"
@@ -68,6 +71,7 @@ class GitTools(str, Enum):
6871
CREATE_BRANCH = "git_create_branch"
6972
CHECKOUT = "git_checkout"
7073
SHOW = "git_show"
74+
INIT = "git_init"
7175

7276
def git_status(repo: git.Repo) -> str:
7377
return repo.git.status()
@@ -118,6 +122,13 @@ def git_checkout(repo: git.Repo, branch_name: str) -> str:
118122
repo.git.checkout(branch_name)
119123
return f"Switched to branch '{branch_name}'"
120124

125+
def git_init(repo_path: str) -> str:
126+
try:
127+
repo = git.Repo.init(path=repo_path, mkdir=True)
128+
return f"Initialized empty Git repository in {repo.git_dir}"
129+
except Exception as e:
130+
return f"Error initializing repository: {str(e)}"
131+
121132
def git_show(repo: git.Repo, revision: str) -> str:
122133
commit = repo.commit(revision)
123134
output = [
@@ -206,6 +217,11 @@ async def list_tools() -> list[Tool]:
206217
name=GitTools.SHOW,
207218
description="Shows the contents of a commit",
208219
inputSchema=GitShow.schema(),
220+
),
221+
Tool(
222+
name=GitTools.INIT,
223+
description="Initialize a new Git repository",
224+
inputSchema=GitInit.schema(),
209225
)
210226
]
211227

@@ -241,6 +257,16 @@ def by_commandline() -> Sequence[str]:
241257
@server.call_tool()
242258
async def call_tool(name: str, arguments: dict) -> list[TextContent]:
243259
repo_path = Path(arguments["repo_path"])
260+
261+
# Handle git init separately since it doesn't require an existing repo
262+
if name == GitTools.INIT:
263+
result = git_init(str(repo_path))
264+
return [TextContent(
265+
type="text",
266+
text=result
267+
)]
268+
269+
# For all other commands, we need an existing repo
244270
repo = git.Repo(repo_path)
245271

246272
match name:

src/github/common/utils.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
import { getUserAgent } from "universal-user-agent";
12
import { createGitHubError } from "./errors.js";
3+
import { VERSION } from "./version.js";
24

35
type RequestOptions = {
46
method?: string;
57
body?: unknown;
68
headers?: Record<string, string>;
7-
};
9+
}
810

911
async function parseResponseBody(response: Response): Promise<unknown> {
1012
const contentType = response.headers.get("content-type");
@@ -24,13 +26,16 @@ export function buildUrl(baseUrl: string, params: Record<string, string | number
2426
return url.toString();
2527
}
2628

29+
const USER_AGENT = `modelcontextprotocol/servers/github/v${VERSION} ${getUserAgent()}`;
30+
2731
export async function githubRequest(
2832
url: string,
2933
options: RequestOptions = {}
3034
): Promise<unknown> {
3135
const headers: Record<string, string> = {
3236
"Accept": "application/vnd.github.v3+json",
3337
"Content-Type": "application/json",
38+
"User-Agent": USER_AGENT,
3439
...options.headers,
3540
};
3641

src/github/common/version.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const VERSION = "0.6.2";

src/github/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,12 @@ import {
2525
GitHubConflictError,
2626
isGitHubError,
2727
} from './common/errors.js';
28+
import { VERSION } from "./common/version.js";
2829

2930
const server = new Server(
3031
{
3132
name: "github-mcp-server",
32-
version: "0.1.0",
33+
version: VERSION,
3334
},
3435
{
3536
capabilities: {

src/github/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@
2323
"@types/node": "^22",
2424
"@types/node-fetch": "^2.6.12",
2525
"node-fetch": "^3.3.2",
26+
"universal-user-agent": "^7.0.2",
2627
"zod": "^3.22.4",
2728
"zod-to-json-schema": "^3.23.5"
2829
},
2930
"devDependencies": {
3031
"shx": "^0.3.4",
3132
"typescript": "^5.6.2"
3233
}
33-
}
34+
}

src/gitlab/README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ Add the following to your `claude_desktop_config.json`:
117117
"command": "docker",
118118
"args": [
119119
"run",
120+
"--rm",
121+
"-i",
120122
"-e",
121123
"GITLAB_PERSONAL_ACCESS_TOKEN",
122124
"-e",
@@ -167,4 +169,4 @@ docker build -t vonwig/gitlab:mcp -f src/gitlab/Dockerfile .
167169

168170
## License
169171

170-
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
172+
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

src/google-maps/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ Add the following to your `claude_desktop_config.json`:
106106
Docker build:
107107

108108
```bash
109-
docker build -t vonwig/google-maps:mcp -f src/google-maps/Dockerfile .
109+
docker build -t mcp/google-maps -f src/google-maps/Dockerfile .
110110
```
111111

112112
## License

src/memory/README.md

+25-2
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ Add this to your claude_desktop_config.json:
137137
"mcpServers": {
138138
"memory": {
139139
"command": "docker",
140-
"args": ["run", "-i", "--rm", "mcp/memory"]
140+
"args": ["run", "-i", "-v", "claude-memory:/app/dist", "--rm", "mcp/memory"]
141141
}
142142
}
143143
}
@@ -158,6 +158,29 @@ Add this to your claude_desktop_config.json:
158158
}
159159
```
160160

161+
#### NPX with custom setting
162+
163+
The server can be configured using the following environment variables:
164+
165+
```json
166+
{
167+
"mcpServers": {
168+
"memory": {
169+
"command": "npx",
170+
"args": [
171+
"-y",
172+
"@modelcontextprotocol/server-memory"
173+
],
174+
"env": {
175+
"MEMORY_FILE_PATH": "/path/to/custom/memory.json"
176+
}
177+
}
178+
}
179+
}
180+
```
181+
182+
- `MEMORY_FILE_PATH`: Path to the memory storage JSON file (default: `memory.json` in the server directory)
183+
161184
### System Prompt
162185

163186
The prompt for utilizing memory depends on the use case. Changing the prompt will help the model determine the frequency and types of memories created.
@@ -200,4 +223,4 @@ docker build -t mcp/memory -f src/memory/Dockerfile .
200223

201224
## License
202225

203-
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
226+
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

src/memory/index.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,15 @@ import { promises as fs } from 'fs';
1010
import path from 'path';
1111
import { fileURLToPath } from 'url';
1212

13+
// Define memory file path using environment variable with fallback
14+
const defaultMemoryPath = path.join(path.dirname(fileURLToPath(import.meta.url)), 'memory.json');
1315

14-
// Define the path to the JSONL file, you can change this to your desired local path
15-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
16-
const MEMORY_FILE_PATH = path.join(__dirname, 'memory.json');
16+
// If MEMORY_FILE_PATH is just a filename, put it in the same directory as the script
17+
const MEMORY_FILE_PATH = process.env.MEMORY_FILE_PATH
18+
? path.isAbsolute(process.env.MEMORY_FILE_PATH)
19+
? process.env.MEMORY_FILE_PATH
20+
: path.join(path.dirname(fileURLToPath(import.meta.url)), process.env.MEMORY_FILE_PATH)
21+
: defaultMemoryPath;
1722

1823
// We are storing our memory using entities, relations, and observations in a graph structure
1924
interface Entity {

src/memory/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@modelcontextprotocol/server-memory",
3-
"version": "0.6.2",
3+
"version": "0.6.3",
44
"description": "MCP server for enabling memory for Claude through a knowledge graph",
55
"license": "MIT",
66
"author": "Anthropic, PBC (https://anthropic.com)",

src/sqlite/src/mcp_server_sqlite/server.py

+8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import os
2+
import sys
13
import sqlite3
24
import logging
35
from contextlib import closing
@@ -9,6 +11,12 @@
911
from pydantic import AnyUrl
1012
from typing import Any
1113

14+
# reconfigure UnicodeEncodeError prone default (i.e. windows-1252) to utf-8
15+
if sys.platform == "win32" and os.environ.get('PYTHONIOENCODING') is None:
16+
sys.stdin.reconfigure(encoding="utf-8")
17+
sys.stdout.reconfigure(encoding="utf-8")
18+
sys.stderr.reconfigure(encoding="utf-8")
19+
1220
logger = logging.getLogger('mcp_sqlite_server')
1321
logger.info("Starting MCP SQLite Server")
1422

0 commit comments

Comments
 (0)