{"id":"e7a2d70e-e21b-44d8-87a7-70a619c9cb1a","slug":"mcp-chrisleekr-langchain-playground","name":"langchain-playground","description":"A LangChain playground using TypeScript","canonicalUrl":"https://www.xpersona.co/mcp/mcp-chrisleekr-langchain-playground","sourceUrl":"https://github.com/chrisleekr/langchain-playground","homepage":"https://github.com/chrisleekr/langchain-playground#readme","source":"GITHUB_MCP","vendor":{"slug":"chrisleekr","label":"Chrisleekr","url":"https://github.com/chrisleekr/langchain-playground#readme"},"protocols":["MCP"],"capabilities":["LangChain","TypeScript"],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":"0.0.1","freshnessAt":"2026-02-25T03:15:46.755Z","freshnessLabel":"Feb 25, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"MCP"},{"label":"Freshness","value":"Feb 25, 2026"},{"label":"Vendor","value":"Chrisleekr"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"0.0.1"}],"factsPreview":[{"factKey":"docs_crawl","category":"integration","label":"Crawlable docs","value":"6 indexed pages on the official domain","href":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceUrl":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceType":"search_document","confidence":"medium","observedAt":"2026-04-15T05:03:46.393Z","isPublic":true},{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Chrisleekr","href":"https://github.com/chrisleekr/langchain-playground#readme","sourceUrl":"https://github.com/chrisleekr/langchain-playground#readme","sourceType":"profile","confidence":"medium","observedAt":"2026-02-25T03:15:48.067Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"MCP","href":"https://www.xpersona.co/api/v1/agents/mcp-chrisleekr-langchain-playground/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/mcp-chrisleekr-langchain-playground/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-02-25T03:15:48.067Z","isPublic":true},{"factKey":"traction","category":"adoption","label":"Adoption signal","value":"5 GitHub stars","href":"https://github.com/chrisleekr/langchain-playground","sourceUrl":"https://github.com/chrisleekr/langchain-playground","sourceType":"profile","confidence":"medium","observedAt":"2026-02-25T03:15:48.067Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/mcp-chrisleekr-langchain-playground/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/mcp-chrisleekr-langchain-playground/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["5 GitHub stars","Trust evidence available"],"agentCard":{"name":"langchain-playground","description":"A LangChain playground using TypeScript","source":"GITHUB_MCP","sourceId":"github-mcp:779881218","homepage":"https://github.com/chrisleekr/langchain-playground#readme","repository":"https://github.com/chrisleekr/langchain-playground","documentation":"https://www.xpersona.co/mcp/mcp-chrisleekr-langchain-playground/agent/mcp-chrisleekr-langchain-playground","protocols":["MCP"],"capabilities":["LangChain","TypeScript"],"languages":["typescript"],"install":{"command":"git clone https://github.com/chrisleekr/langchain-playground.git","ecosystem":"git"},"examples":[{"kind":"example","language":"mermaid","snippet":"flowchart TB\n    subgraph top [\" \"]\n        direction TB\n        LC[LangChain.js] --> Supervisor[\"Investigate<br/>(Supervisor)\"]\n    end\n    \n    Supervisor --> SupervisorFlow\n    \n    subgraph SupervisorFlow [\"Supervisor Prompt - Investigation flow\"]\n        direction TB\n        \n        subgraph agents [\" \"]\n            direction LR\n            NR[\"NewRelic Expert<br/>(ReAct Agent)\"]\n            SE[\"Sentry Expert<br/>(ReAct Agent)\"]\n            RE[\"Research Expert<br/>(ReAct Agent)\"]\n            AWS[\"AWS ECS Expert<br/>(ReAct Agent)\"]\n        end\n        \n        subgraph NRTools [\"Tools\"]\n            NR1[\"Get Issue/Incident/Alert from NewRelic<br/>(get_investigation_context)\"]\n            NR2[\"Use LLM to generate trace NRQL for<br/>violated logs based on alert title<br/>and alert NRQL<br/>(generate_log_nrql_query)\"]\n            NR3[\"Use LLM to generate NRQL to get<br/>trace logs based on trace id<br/>(generate_trace_logs_query)\"]\n            NR4[\"Fetch logs and use LLM to summarise<br/>investigation information<br/>(fetch_and_analyze_logs)\"]\n            NR1 --> NR2 --> NR3 --> NR4\n        end\n        \n        subgraph SETools [\"Tools\"]\n            SE1[\"Get issues from Sentry<br/>(investigate_and_analyze_sentry_issue)\"]\n        end\n        \n        subgraph RETools [\"Tools\"]\n            RE1[\"Brave Search MCP\"]\n            RE2[\"Context7 MCP\"]\n            RE3[\"More MCPs\"]\n        end\n        \n        subgraph AWSTools [\"Tools\"]\n            AWS1[\"Analyses ECS task status, CloudWatch<br/>metrics and service events<br/>(investigate_and_analyze_ecs_tasks)\"]\n        end\n        \n        NR --> NRTools\n        SE --> SETools\n        RE --> RETools\n        AWS --> AWSTools\n    end\n    \n    SupervisorFlow --> Final[\"Return final summarised investigation\"]"},{"kind":"example","language":"mermaid","snippet":"flowchart TB\n    subgraph header [\" \"]\n        direction LR\n        LC[LangChain.js]\n        Slack[Slack]\n        MCP[MCP Tool]\n    end\n    \n    Investigate((Investigate)) -.-> Sentry[Sentry]\n    \n    Investigate --> GetIssue[\"Get issue from Sentry\"]\n    GetIssue --> NormalizeIssue[\"Normalize Sentry issue<br/>- Remove unnecessary data from issue\"]\n    \n    NormalizeIssue --> GetEvent[\"Get latest issue event from Sentry\"]\n    GetEvent --> NormalizeEvent[\"Normalize Sentry issue event<br/>- Extract only necessary event data<br/>including stack trace\"]\n    \n    NormalizeEvent --> HasStackTrace{\"Retrieved stack trace?\"}\n    \n    HasStackTrace -->|No| Summarize[\"Use LLM to summarise<br/>investigation information\"]\n    \n    HasStackTrace -->|Yes| LoopStackTrace\n    \n    subgraph LoopStackTrace [\"Loop stack trace\"]\n        direction TB\n        CheckNodeModules{\"filename contains<br/>node_modules?\"}\n        CheckNodeModules -->|\"If yes, skip\"| CheckNodeModules\n        CheckNodeModules -->|\"No, then let's fetch the file\"| CheckAvailable{\"Does filename and function<br/>are available?<br/>- in case anonymous?\"}\n        CheckAvailable -->|\"If no, skip\"| CheckNodeModules\n        CheckAvailable -->|\"Yes, available\"| FetchFile[\"Fetch file content from<br/>source code repository\"]\n        FetchFile --> ExtractBody[\"Extract function body\"]\n        ExtractBody --> Override[\"Override stack trace with original<br/>source code function body\"]\n        Override --> CheckNodeModules\n    end\n    \n    FetchFile -.-> GitHub[GitHub]\n    FetchFile -.-> GitLab[GitLab]\n    FetchFile -.-> Bitbucket[Bitbucket]\n    \n    LoopStackTrace --> Summarize"}]}}