diff --git a/README.md b/README.md index dbc6eafbe1..f8fe5a0689 100644 --- a/README.md +++ b/README.md @@ -166,6 +166,7 @@ Official integrations are maintained by companies building production ready MCP - DeepL Logo **[DeepL](https://github.com/DeepLcom/deepl-mcp-server)** - Translate or rewrite text with [DeepL](https://deepl.com)'s very own AI models using [the DeepL API](https://developers.deepl.com/docs) - Defang Logo **[Defang](https://github.com/DefangLabs/defang/blob/main/src/pkg/mcp/README.md)** - Deploy your project to the cloud seamlessly with the [Defang](https://www.defang.io) platform without leaving your integrated development environment - Detailer Logo **[Detailer](https://detailer.ginylil.com/)** – Instantly generate rich, AI-powered documentation for your GitHub repositories. Designed for AI agents to gain deep project context before taking action. +- DevCycle Logo **[DevCycle](https://docs.devcycle.com/cli-mcp/mcp-getting-started)** - Create and monitor feature flags using natural language in your AI coding assistant. - DevHub Logo **[DevHub](https://github.com/devhub/devhub-cms-mcp)** - Manage and utilize website content within the [DevHub](https://www.devhub.com) CMS platform - DevRev Logo **[DevRev](https://github.com/devrev/mcp-server)** - An MCP server to integrate with DevRev APIs to search through your DevRev Knowledge Graph where objects can be imported from diff. Sources listed [here](https://devrev.ai/docs/import#available-sources). - DexPaprika Logo **[DexPaprika (CoinPaprika)](https://github.com/coinpaprika/dexpaprika-mcp)** - Access real-time DEX data, liquidity pools, token information, and trading analytics across multiple blockchain networks with [DexPaprika](https://dexpaprika.com) by CoinPaprika. @@ -299,6 +300,7 @@ Official integrations are maintained by companies building production ready MCP - MotherDuck Logo **[MotherDuck](https://github.com/motherduckdb/mcp-server-motherduck)** - Query and analyze data with MotherDuck and local DuckDB - Mulesoft Logo **[Mulesoft](https://www.npmjs.com/package/@mulesoft/mcp-server)** - Build, deploy, and manage MuleSoft applications with natural language, directly inside any compatible IDE. - Multiplayer Logo **[Multiplayer](https://www.multiplayer.app/docs/ai/mcp-server)** - Analyze your full stack session recordings easily. Record a bug with Multiplayer, analyze and fix it with LLM +- Nango Logo **[Nango](https://docs.nango.dev/guides/use-cases/mcp-server)** - Integrate your AI agent with 500+ APIs: Auth, custom tools, and observability. Open-source. - NanoVMs Logo **[NanoVMs](https://github.com/nanovms/ops-mcp)** - Easily Build and Deploy unikernels to any cloud. - Needle AI Logo **[Needle](https://github.com/needle-ai/needle-mcp)** - Production-ready RAG out of the box to search and retrieve data from your own documents. - Neo4j Logo **[Neo4j](https://github.com/neo4j-contrib/mcp-neo4j/)** - Neo4j graph database server (schema + read/write-cypher) and separate graph database backed memory @@ -348,6 +350,7 @@ Official integrations are maintained by companies building production ready MCP - **[Pinecone Assistant](https://github.com/pinecone-io/assistant-mcp)** - Retrieves context from your [Pinecone Assistant](https://docs.pinecone.io/guides/assistant/mcp-server) knowledge base. - Pipedream Logo **[Pipedream](https://github.com/PipedreamHQ/pipedream/tree/master/modelcontextprotocol)** - Connect with 2,500 APIs with 8,000+ prebuilt tools. - PlayCanvas Logo **[PlayCanvas](https://github.com/playcanvas/editor-mcp-server)** - Create interactive 3D web apps with the PlayCanvas Editor. +- Playwright Logo **[Playwright](https://github.com/microsoft/playwright-mcp)** — Browser automation MCP server using Playwright to run tests, navigate pages, capture screenshots, scrape content, and automate web interactions reliably. - Plugged.in Logo **[Plugged.in](https://github.com/VeriTeknik/pluggedin-mcp)** - A comprehensive proxy that combines multiple MCP servers into a single MCP. It provides discovery and management of tools, prompts, resources, and templates across servers, plus a playground for debugging when building MCP servers. - Port Logo **[Port IO](https://github.com/port-labs/port-mcp-server)** - Access and manage your software catalog to improve service quality and compliance. - **[PostHog](https://github.com/posthog/mcp)** - Interact with PostHog analytics, feature flags, error tracking and more with the official PostHog MCP server. diff --git a/src/memory/index.ts b/src/memory/index.ts index 4590a1db6f..982c617be9 100644 --- a/src/memory/index.ts +++ b/src/memory/index.ts @@ -60,8 +60,18 @@ class KnowledgeGraphManager { private async saveGraph(graph: KnowledgeGraph): Promise { const lines = [ - ...graph.entities.map(e => JSON.stringify({ type: "entity", ...e })), - ...graph.relations.map(r => JSON.stringify({ type: "relation", ...r })), + ...graph.entities.map(e => JSON.stringify({ + type: "entity", + name: e.name, + entityType: e.entityType, + observations: e.observations + })), + ...graph.relations.map(r => JSON.stringify({ + type: "relation", + from: r.from, + to: r.to, + relationType: r.relationType + })), ]; await fs.writeFile(MEMORY_FILE_PATH, lines.join("\n")); } @@ -219,10 +229,12 @@ server.setRequestHandler(ListToolsRequestSchema, async () => { }, }, required: ["name", "entityType", "observations"], + additionalProperties: false, }, }, }, required: ["entities"], + additionalProperties: false, }, }, { @@ -241,10 +253,12 @@ server.setRequestHandler(ListToolsRequestSchema, async () => { relationType: { type: "string", description: "The type of the relation" }, }, required: ["from", "to", "relationType"], + additionalProperties: false, }, }, }, required: ["relations"], + additionalProperties: false, }, }, { @@ -266,10 +280,12 @@ server.setRequestHandler(ListToolsRequestSchema, async () => { }, }, required: ["entityName", "contents"], + additionalProperties: false, }, }, }, required: ["observations"], + additionalProperties: false, }, }, { @@ -285,6 +301,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => { }, }, required: ["entityNames"], + additionalProperties: false, }, }, { @@ -306,10 +323,12 @@ server.setRequestHandler(ListToolsRequestSchema, async () => { }, }, required: ["entityName", "observations"], + additionalProperties: false, }, }, }, required: ["deletions"], + additionalProperties: false, }, }, { @@ -328,11 +347,13 @@ server.setRequestHandler(ListToolsRequestSchema, async () => { relationType: { type: "string", description: "The type of the relation" }, }, required: ["from", "to", "relationType"], + additionalProperties: false, }, description: "An array of relations to delete" }, }, required: ["relations"], + additionalProperties: false, }, }, { @@ -341,6 +362,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => { inputSchema: { type: "object", properties: {}, + additionalProperties: false, }, }, { @@ -352,6 +374,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => { query: { type: "string", description: "The search query to match against entity names, types, and observation content" }, }, required: ["query"], + additionalProperties: false, }, }, { @@ -367,6 +390,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => { }, }, required: ["names"], + additionalProperties: false, }, }, ],