Merge branch 'main' into stdict

This commit is contained in:
김정석 2025-04-16 15:08:12 +09:00 • committed by GitHub
commit 3d9100057b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 3 deletions

View file

@ -353,6 +353,7 @@ A growing set of community-developed and maintained servers demonstrates various
- **[Shopify](https://github.com/GeLi2001/shopify-mcp)** - MCP to interact with Shopify API including order, product, customers and so on. - **[Shopify](https://github.com/GeLi2001/shopify-mcp)** - MCP to interact with Shopify API including order, product, customers and so on.
- **[Siri Shortcuts](https://github.com/dvcrn/mcp-server-siri-shortcuts)** - MCP to interact with Siri Shortcuts on macOS. Exposes all Shortcuts as MCP tools. - **[Siri Shortcuts](https://github.com/dvcrn/mcp-server-siri-shortcuts)** - MCP to interact with Siri Shortcuts on macOS. Exposes all Shortcuts as MCP tools.
- **[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. - **[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.
- **[SoccerDataAPI](https://github.com/yeonupark/mcp-soccer-data)** - This MCP server provides real-time football match data based on the SoccerDataAPI.
- **[Solana Agent Kit](https://github.com/sendaifun/solana-agent-kit/tree/main/examples/agent-kit-mcp-server)** - This MCP server enables LLMs to interact with the Solana blockchain with help of Solana Agent Kit by SendAI, allowing for 40+ protcool actions and growing - **[Solana Agent Kit](https://github.com/sendaifun/solana-agent-kit/tree/main/examples/agent-kit-mcp-server)** - This MCP server enables LLMs to interact with the Solana blockchain with help of Solana Agent Kit by SendAI, allowing for 40+ protcool actions and growing
- **[Spotify](https://github.com/varunneal/spotify-mcp)** - This MCP allows an LLM to play and use Spotify. - **[Spotify](https://github.com/varunneal/spotify-mcp)** - This MCP allows an LLM to play and use Spotify.
- **[Standard Korean Dictionary](https://github.com/privetin/stdict)** - Search the dictionary using API - **[Standard Korean Dictionary](https://github.com/privetin/stdict)** - Search the dictionary using API

View file

@ -114,8 +114,9 @@ export const createServer = () => {
let subscriptions: Set<string> = new Set(); let subscriptions: Set<string> = new Set();
let subsUpdateInterval: NodeJS.Timeout | undefined; let subsUpdateInterval: NodeJS.Timeout | undefined;
// Set up update interval for subscribed resources let stdErrUpdateInterval: NodeJS.Timeout | undefined;
// Set up update interval for subscribed resources
subsUpdateInterval = setInterval(() => { subsUpdateInterval = setInterval(() => {
for (const uri of subscriptions) { for (const uri of subscriptions) {
server.notification({ server.notification({
@ -123,7 +124,7 @@ export const createServer = () => {
params: { uri }, params: { uri },
}); });
} }
}, 5000); }, 10000);
let logLevel: LoggingLevel = "debug"; let logLevel: LoggingLevel = "debug";
let logsUpdateInterval: NodeJS.Timeout | undefined; let logsUpdateInterval: NodeJS.Timeout | undefined;
@ -152,7 +153,21 @@ export const createServer = () => {
}; };
if (!isMessageIgnored(message.params.level as LoggingLevel)) if (!isMessageIgnored(message.params.level as LoggingLevel))
server.notification(message); server.notification(message);
}, 15000); }, 20000);
// Set up update interval for stderr messages
stdErrUpdateInterval = setInterval(() => {
const shortTimestamp = new Date().toLocaleTimeString([], {
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
});
server.notification({
method: "notifications/stderr",
params: { content: `${shortTimestamp}: A stderr message` },
});
}, 30000);
// Helper method to request sampling from client // Helper method to request sampling from client
const requestSampling = async ( const requestSampling = async (
@ -676,6 +691,7 @@ export const createServer = () => {
const cleanup = async () => { const cleanup = async () => {
if (subsUpdateInterval) clearInterval(subsUpdateInterval); if (subsUpdateInterval) clearInterval(subsUpdateInterval);
if (logsUpdateInterval) clearInterval(logsUpdateInterval); if (logsUpdateInterval) clearInterval(logsUpdateInterval);
if (stdErrUpdateInterval) clearInterval(stdErrUpdateInterval);
}; };
return { server, cleanup }; return { server, cleanup };