Merge branch 'main' into update-test-framework-to-vitest
This commit is contained in:
commit
07eaef78ed
3 changed files with 42 additions and 9 deletions
|
|
@ -936,6 +936,7 @@ A growing set of community-developed and maintained servers demonstrates various
|
||||||
- **[MCP Create](https://github.com/tesla0225/mcp-create)** - A dynamic MCP server management service that creates, runs, and manages Model Context Protocol servers on-the-fly.
|
- **[MCP Create](https://github.com/tesla0225/mcp-create)** - A dynamic MCP server management service that creates, runs, and manages Model Context Protocol servers on-the-fly.
|
||||||
- **[MCP Documentation Server](https://github.com/andrea9293/mcp-documentation-server)** - Server that provides local-first document management and semantic search via embeddings or Gemini AI (recommended). Optimized for performance with disk persistence, an in-memory index, and caching.
|
- **[MCP Documentation Server](https://github.com/andrea9293/mcp-documentation-server)** - Server that provides local-first document management and semantic search via embeddings or Gemini AI (recommended). Optimized for performance with disk persistence, an in-memory index, and caching.
|
||||||
- **[MCP Installer](https://github.com/anaisbetts/mcp-installer)** - This server is a server that installs other MCP servers for you.
|
- **[MCP Installer](https://github.com/anaisbetts/mcp-installer)** - This server is a server that installs other MCP servers for you.
|
||||||
|
- **[MCP on Android TV](https://github.com/MiddlePoint-Solutions/mcp-on-android-tv)** - A Model Context Protocol (MCP) server running directly on your Android TV with bundeld access to ADB on-device.
|
||||||
- **[MCP ProjectManage OpenProject](https://github.com/boma086/mcp-projectmanage-openproject)** - This server provides the MCP service for project weekly reports, with project management information supplied by OpenProject.
|
- **[MCP ProjectManage OpenProject](https://github.com/boma086/mcp-projectmanage-openproject)** - This server provides the MCP service for project weekly reports, with project management information supplied by OpenProject.
|
||||||
- **[MCP Proxy Server](https://github.com/TBXark/mcp-proxy)** - An MCP proxy server that aggregates and serves multiple MCP resource servers through a single HTTP server.
|
- **[MCP Proxy Server](https://github.com/TBXark/mcp-proxy)** - An MCP proxy server that aggregates and serves multiple MCP resource servers through a single HTTP server.
|
||||||
- **[MCP Server Creator](https://github.com/GongRzhe/MCP-Server-Creator)** - A powerful Model Context Protocol (MCP) server that creates other MCP servers! This meta-server provides tools for dynamically generating FastMCP server configurations and Python code.
|
- **[MCP Server Creator](https://github.com/GongRzhe/MCP-Server-Creator)** - A powerful Model Context Protocol (MCP) server that creates other MCP servers! This meta-server provides tools for dynamically generating FastMCP server configurations and Python code.
|
||||||
|
|
|
||||||
|
|
@ -173,14 +173,14 @@ The server can be configured using the following environment variables:
|
||||||
"@modelcontextprotocol/server-memory"
|
"@modelcontextprotocol/server-memory"
|
||||||
],
|
],
|
||||||
"env": {
|
"env": {
|
||||||
"MEMORY_FILE_PATH": "/path/to/custom/memory.json"
|
"MEMORY_FILE_PATH": "/path/to/custom/memory.jsonl"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
- `MEMORY_FILE_PATH`: Path to the memory storage JSON file (default: `memory.json` in the server directory)
|
- `MEMORY_FILE_PATH`: Path to the memory storage JSONL file (default: `memory.jsonl` in the server directory)
|
||||||
|
|
||||||
# VS Code Installation Instructions
|
# VS Code Installation Instructions
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,14 +11,43 @@ import path from 'path';
|
||||||
import { fileURLToPath } from 'url';
|
import { fileURLToPath } from 'url';
|
||||||
|
|
||||||
// Define memory file path using environment variable with fallback
|
// Define memory file path using environment variable with fallback
|
||||||
const defaultMemoryPath = path.join(path.dirname(fileURLToPath(import.meta.url)), 'memory.json');
|
const defaultMemoryPath = path.join(path.dirname(fileURLToPath(import.meta.url)), 'memory.jsonl');
|
||||||
|
|
||||||
// If MEMORY_FILE_PATH is just a filename, put it in the same directory as the script
|
// Handle backward compatibility: migrate memory.json to memory.jsonl if needed
|
||||||
const MEMORY_FILE_PATH = process.env.MEMORY_FILE_PATH
|
async function ensureMemoryFilePath(): Promise<string> {
|
||||||
? path.isAbsolute(process.env.MEMORY_FILE_PATH)
|
if (process.env.MEMORY_FILE_PATH) {
|
||||||
? process.env.MEMORY_FILE_PATH
|
// Custom path provided, use it as-is (with absolute path resolution)
|
||||||
: path.join(path.dirname(fileURLToPath(import.meta.url)), process.env.MEMORY_FILE_PATH)
|
return path.isAbsolute(process.env.MEMORY_FILE_PATH)
|
||||||
: defaultMemoryPath;
|
? process.env.MEMORY_FILE_PATH
|
||||||
|
: path.join(path.dirname(fileURLToPath(import.meta.url)), process.env.MEMORY_FILE_PATH);
|
||||||
|
}
|
||||||
|
|
||||||
|
// No custom path set, check for backward compatibility migration
|
||||||
|
const oldMemoryPath = path.join(path.dirname(fileURLToPath(import.meta.url)), 'memory.json');
|
||||||
|
const newMemoryPath = defaultMemoryPath;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Check if old file exists and new file doesn't
|
||||||
|
await fs.access(oldMemoryPath);
|
||||||
|
try {
|
||||||
|
await fs.access(newMemoryPath);
|
||||||
|
// Both files exist, use new one (no migration needed)
|
||||||
|
return newMemoryPath;
|
||||||
|
} catch {
|
||||||
|
// Old file exists, new file doesn't - migrate
|
||||||
|
console.error('DETECTED: Found legacy memory.json file, migrating to memory.jsonl for JSONL format compatibility');
|
||||||
|
await fs.rename(oldMemoryPath, newMemoryPath);
|
||||||
|
console.error('COMPLETED: Successfully migrated memory.json to memory.jsonl');
|
||||||
|
return newMemoryPath;
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
// Old file doesn't exist, use new path
|
||||||
|
return newMemoryPath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize memory file path (will be set during startup)
|
||||||
|
let MEMORY_FILE_PATH: string;
|
||||||
|
|
||||||
// We are storing our memory using entities, relations, and observations in a graph structure
|
// We are storing our memory using entities, relations, and observations in a graph structure
|
||||||
interface Entity {
|
interface Entity {
|
||||||
|
|
@ -434,6 +463,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
// Initialize memory file path with backward compatibility
|
||||||
|
MEMORY_FILE_PATH = await ensureMemoryFilePath();
|
||||||
|
|
||||||
const transport = new StdioServerTransport();
|
const transport = new StdioServerTransport();
|
||||||
await server.connect(transport);
|
await server.connect(transport);
|
||||||
console.error("Knowledge Graph MCP Server running on stdio");
|
console.error("Knowledge Graph MCP Server running on stdio");
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue