Skip to content

Commit 1add4ca

Browse files
authored
Merge branch 'main' into claude/issue-475-20250817-1726
2 parents 713eb6c + bfa699f commit 1add4ca

12 files changed

Lines changed: 1326 additions & 429 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,7 @@ A growing set of community-developed and maintained servers demonstrates various
605605
- **[DesktopCommander](https://github.com/wonderwhy-er/DesktopCommanderMCP)** - Let AI edit and manage files on your computer, run terminal commands, and connect to remote servers via SSH - all powered by one of the most popular local MCP servers.
606606
- **[Devcontainer](https://github.com/AI-QL/mcp-devcontainers)** - An MCP server for devcontainer to generate and configure development containers directly from devcontainer configuration files.
607607
- **[DevDb](https://github.com/damms005/devdb-vscode?tab=readme-ov-file#mcp-configuration)** - An MCP server that runs right inside the IDE, for connecting to MySQL, Postgres, SQLite, and MSSQL databases.
608+
- **[DevOps AI Toolkit](https://github.com/vfarcic/dot-ai)** - AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance.
608609
- **[DevOps-MCP](https://github.com/wangkanai/devops-mcp)** - Dynamic Azure DevOps MCP server with directory-based authentication switching, supporting work items, repositories, builds, pipelines, and multi-project management with local configuration files.
609610
- **[Dicom](https://github.com/ChristianHinge/dicom-mcp)** - An MCP server to query and retrieve medical images and for parsing and reading dicom-encapsulated documents (pdf etc.).
610611
- **[Dify](https://github.com/YanxingLiu/dify-mcp-server)** - A simple implementation of an MCP server for dify workflows.
@@ -992,6 +993,7 @@ A growing set of community-developed and maintained servers demonstrates various
992993
- **[Prefect](https://github.com/allen-munsch/mcp-prefect)** - MCP Server for workflow orchestration and ELT/ETL with Prefect Server, and Prefect Cloud [https://www.prefect.io/] using the `prefect` python client.
993994
- **[Productboard](https://github.com/kenjihikmatullah/productboard-mcp)** - Integrate the Productboard API into agentic workflows via MCP.
994995
- **[Prometheus](https://github.com/pab1it0/prometheus-mcp-server)** - Query and analyze Prometheus - open-source monitoring system.
996+
- **[Prometheus (TypeScript)](https://github.com/yanmxa/prometheus-mcp-server)** - Enable AI assistants to query Prometheus using natural language with TypeScript implementation.
995997
- **[PubChem](https://github.com/sssjiang/pubchem_mcp_server)** - extract drug information from pubchem API.
996998
- **[PubMed](https://github.com/JackKuo666/PubMed-MCP-Server)** - Enable AI assistants to search, access, and analyze PubMed articles through a simple MCP interface.
997999
- **[Pulumi](https://github.com/dogukanakkaya/pulumi-mcp-server)** - MCP Server to Interact with Pulumi API, creates and lists Stacks

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/everything/everything.ts

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -169,16 +169,6 @@ export const createServer = () => {
169169
let subsUpdateInterval: NodeJS.Timeout | undefined;
170170
let stdErrUpdateInterval: NodeJS.Timeout | undefined;
171171

172-
// Set up update interval for subscribed resources
173-
subsUpdateInterval = setInterval(() => {
174-
for (const uri of subscriptions) {
175-
server.notification({
176-
method: "notifications/resources/updated",
177-
params: { uri },
178-
});
179-
}
180-
}, 10000);
181-
182172
let logLevel: LoggingLevel = "debug";
183173
let logsUpdateInterval: NodeJS.Timeout | undefined;
184174
const messages = [
@@ -198,15 +188,30 @@ export const createServer = () => {
198188
return messageLevel < currentLevel;
199189
};
200190

201-
// Set up update interval for random log messages
202-
logsUpdateInterval = setInterval(() => {
203-
let message = {
204-
method: "notifications/message",
205-
params: messages[Math.floor(Math.random() * messages.length)],
206-
};
207-
if (!isMessageIgnored(message.params.level as LoggingLevel))
208-
server.notification(message);
209-
}, 20000);
191+
// Function to start notification intervals when a client connects
192+
const startNotificationIntervals = () => {
193+
if (!subsUpdateInterval) {
194+
subsUpdateInterval = setInterval(() => {
195+
for (const uri of subscriptions) {
196+
server.notification({
197+
method: "notifications/resources/updated",
198+
params: { uri },
199+
});
200+
}
201+
}, 10000);
202+
}
203+
204+
if (!logsUpdateInterval) {
205+
logsUpdateInterval = setInterval(() => {
206+
let message = {
207+
method: "notifications/message",
208+
params: messages[Math.floor(Math.random() * messages.length)],
209+
};
210+
if (!isMessageIgnored(message.params.level as LoggingLevel))
211+
server.notification(message);
212+
}, 20000);
213+
}
214+
};
210215

211216

212217

@@ -874,7 +879,7 @@ export const createServer = () => {
874879
if (stdErrUpdateInterval) clearInterval(stdErrUpdateInterval);
875880
};
876881

877-
return { server, cleanup };
882+
return { server, cleanup, startNotificationIntervals };
878883
};
879884

880885
const MCP_TINY_IMAGE =

src/everything/sse.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const transports: Map<string, SSEServerTransport> = new Map<string, SSEServerTra
1010

1111
app.get("/sse", async (req, res) => {
1212
let transport: SSEServerTransport;
13-
const { server, cleanup } = createServer();
13+
const { server, cleanup, startNotificationIntervals } = createServer();
1414

1515
if (req?.query?.sessionId) {
1616
const sessionId = (req?.query?.sessionId as string);
@@ -25,6 +25,9 @@ app.get("/sse", async (req, res) => {
2525
await server.connect(transport);
2626
console.error("Client Connected: ", transport.sessionId);
2727

28+
// Start notification intervals after client connects
29+
startNotificationIntervals();
30+
2831
// Handle close of connection
2932
server.onclose = async () => {
3033
console.error("Client Disconnected: ", transport.sessionId);

src/filesystem/README.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,6 @@ The server's directory access control follows this flow:
6464

6565
## API
6666

67-
### Resources
68-
69-
- `file://system`: File system operations interface
70-
7167
### Tools
7268

7369
- **read_text_file**
@@ -77,6 +73,7 @@ The server's directory access control follows this flow:
7773
- `head` (number, optional): First N lines
7874
- `tail` (number, optional): Last N lines
7975
- Always treats the file as UTF-8 text regardless of extension
76+
- Cannot specify both `head` and `tail` simultaneously
8077

8178
- **read_media_file**
8279
- Read an image or audio file
@@ -123,6 +120,23 @@ The server's directory access control follows this flow:
123120
- List directory contents with [FILE] or [DIR] prefixes
124121
- Input: `path` (string)
125122

123+
- **list_directory_with_sizes**
124+
- List directory contents with [FILE] or [DIR] prefixes, including file sizes
125+
- Inputs:
126+
- `path` (string): Directory path to list
127+
- `sortBy` (string, optional): Sort entries by "name" or "size" (default: "name")
128+
- Returns detailed listing with file sizes and summary statistics
129+
- Shows total files, directories, and combined size
130+
131+
- **directory_tree**
132+
- Get a recursive tree view of files and directories as a JSON structure
133+
- Input: `path` (string): Starting directory path
134+
- Returns JSON structure with:
135+
- `name`: File/directory name
136+
- `type`: "file" or "directory"
137+
- `children`: Array of child entries (for directories only)
138+
- Output is formatted with 2-space indentation for readability
139+
126140
- **move_file**
127141
- Move or rename files and directories
128142
- Inputs:

0 commit comments

Comments
 (0)