Market Recap
Market Recap MCP β a one-call 'what happened in markets' snapshot.
Crawler Summary
OpenClaw agent: agent_langgraph MCP Server Migration: Complete Guide This guide will help you migrate from wxflows to MCP (Model Context Protocol) servers for your LangGraph agent. π Table of Contents 1. $1 2. $1 3. $1 4. $1 5. $1 6. $1 7. $1 8. $1 Prerequisites - Node.js 18+ installed - TypeScript knowledge - Existing wxflows-based LangGraph agent - Google AI API key Installation 1. Install Required Dependencies 2. Update Your package.json 3. Ins Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Freshness
Last checked 2/22/2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
agent_langgraph is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
OpenClaw agent: agent_langgraph MCP Server Migration: Complete Guide This guide will help you migrate from wxflows to MCP (Model Context Protocol) servers for your LangGraph agent. π Table of Contents 1. $1 2. $1 3. $1 4. $1 5. $1 6. $1 7. $1 8. $1 Prerequisites - Node.js 18+ installed - TypeScript knowledge - Existing wxflows-based LangGraph agent - Google AI API key Installation 1. Install Required Dependencies 2. Update Your package.json 3. Ins
Public facts
6
Change events
1
Artifacts
0
Freshness
Feb 22, 2026
Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 22, 2026
Vendor
Deeppjp116
Artifacts
0
Benchmarks
0
Last release
0.1.0
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Setup snapshot
git clone https://github.com/Deeppjp116/Smart-Agent.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Deeppjp116
Protocol compatibility
MCP
Auth modes
mcp, api_key
Machine-readable schemas
OpenAPI or schema references published
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
bash
npm install @modelcontextprotocol/sdk zod <!-- /media/deep/D18/Projects/agent_langgraph/README.md -->
json
{
"dependencies": {
"@langchain/core": "^0.3.0",
"@langchain/google-genai": "^0.1.0",
"@langchain/langgraph": "^0.2.0",
"@modelcontextprotocol/sdk": "^1.0.0",
"zod": "^3.22.0"
}
}bash
# Install servers you want to use npm install -g @modelcontextprotocol/server-weather npm install -g @modelcontextprotocol/server-filesystem npm install -g @modelcontextprotocol/server-github
text
your-project/ βββ src/ β βββ agent.ts # Updated agent with MCP client β βββ langgraph.ts # Updated workflow with initialization β βββ mcp-client.ts # Production MCP client implementation β βββ mcp-config.ts # Server configuration β βββ constants/ β β βββ systemMessage.ts # Your system message β βββ servers/ # Custom MCP servers β βββ mcp-server-example.ts βββ dist/ # Compiled JavaScript βββ .env # Environment variables βββ package.json βββ tsconfig.json
typescript
import wxflows from '@wxflows/sdk/langchain';
export const toolClient = new wxflows({
endpoint: process.env.WXFLOWS_ENDPOINT || '',
apikey: process.env.WXFLOWS_APIKEY,
});
export const tools = await toolClient.lcTools;
export const toolNode = new ToolNode(tools);typescript
import { MCPClient } from './mcp-client';
import { getActiveServerConfigs, validateServerConfig } from './mcp-config';
export const mcpClient = new MCPClient();
let tools: DynamicStructuredTool[] = [];
let toolNode: ToolNode;
export async function initializeMCPTools() {
const serverConfigs = getActiveServerConfigs();
for (const [name, config] of Object.entries(serverConfigs)) {
if (validateServerConfig(name, config)) {
mcpClient.addServer(name, config);
}
}
await mcpClient.initialize();
tools = mcpClient.getTools();
toolNode = new ToolNode(tools);
return { tools, toolNode };
}
export { tools, toolNode };Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
OpenClaw agent: agent_langgraph MCP Server Migration: Complete Guide This guide will help you migrate from wxflows to MCP (Model Context Protocol) servers for your LangGraph agent. π Table of Contents 1. $1 2. $1 3. $1 4. $1 5. $1 6. $1 7. $1 8. $1 Prerequisites - Node.js 18+ installed - TypeScript knowledge - Existing wxflows-based LangGraph agent - Google AI API key Installation 1. Install Required Dependencies 2. Update Your package.json 3. Ins
This guide will help you migrate from wxflows to MCP (Model Context Protocol) servers for your LangGraph agent.
npm install @modelcontextprotocol/sdk zod
<!-- /media/deep/D18/Projects/agent_langgraph/README.md -->
{
"dependencies": {
"@langchain/core": "^0.3.0",
"@langchain/google-genai": "^0.1.0",
"@langchain/langgraph": "^0.2.0",
"@modelcontextprotocol/sdk": "^1.0.0",
"zod": "^3.22.0"
}
}
# Install servers you want to use
npm install -g @modelcontextprotocol/server-weather
npm install -g @modelcontextprotocol/server-filesystem
npm install -g @modelcontextprotocol/server-github
Your new project structure should look like this:
your-project/
βββ src/
β βββ agent.ts # Updated agent with MCP client
β βββ langgraph.ts # Updated workflow with initialization
β βββ mcp-client.ts # Production MCP client implementation
β βββ mcp-config.ts # Server configuration
β βββ constants/
β β βββ systemMessage.ts # Your system message
β βββ servers/ # Custom MCP servers
β βββ mcp-server-example.ts
βββ dist/ # Compiled JavaScript
βββ .env # Environment variables
βββ package.json
βββ tsconfig.json
Create three new files in your src/ directory:
Replace your wxflows imports and initialization:
BEFORE:
import wxflows from '@wxflows/sdk/langchain';
export const toolClient = new wxflows({
endpoint: process.env.WXFLOWS_ENDPOINT || '',
apikey: process.env.WXFLOWS_APIKEY,
});
export const tools = await toolClient.lcTools;
export const toolNode = new ToolNode(tools);
AFTER:
import { MCPClient } from './mcp-client';
import { getActiveServerConfigs, validateServerConfig } from './mcp-config';
export const mcpClient = new MCPClient();
let tools: DynamicStructuredTool[] = [];
let toolNode: ToolNode;
export async function initializeMCPTools() {
const serverConfigs = getActiveServerConfigs();
for (const [name, config] of Object.entries(serverConfigs)) {
if (validateServerConfig(name, config)) {
mcpClient.addServer(name, config);
}
}
await mcpClient.initialize();
tools = mcpClient.getTools();
toolNode = new ToolNode(tools);
return { tools, toolNode };
}
export { tools, toolNode };
Add initialization check before processing messages:
let mcpInitialized = false;
async function ensureMCPInitialized() {
if (!mcpInitialized) {
console.log('π§ Initializing MCP servers...');
await initializeMCPTools();
mcpInitialized = true;
console.log('β
MCP ready');
}
}
export async function submitQuestion(messages: BaseMessage[], chatId: string) {
// Initialize MCP tools if not already done
await ensureMCPInitialized();
// Rest of your code remains the same
const optimizedMessages = optimizeMessages(messages);
const workflow = createWorkflow();
// ... etc
}
Edit mcp-config.ts to enable the servers you need:
export const ACTIVE_SERVERS = [
'weather', // Enable weather forecasting
// 'filesystem', // Uncomment to enable file operations
// 'github', // Uncomment for GitHub integration
'custom', // Your custom server
];
Create/update your .env file:
# Required
GOOGLE_API_KEY=your_google_api_key
# Optional - based on which servers you use
GITHUB_TOKEN=your_github_token
DATABASE_URL=postgresql://user:pass@localhost:5432/db
ALLOWED_DIRECTORY=/path/to/allowed/directory
SQLITE_DB_PATH=./database.sqlite
# Custom server variables
CUSTOM_API_KEY=your_api_key
In mcp-config.ts, add servers to the MCP_SERVERS object:
export const MCP_SERVERS: Record<string, MCPServerConfig> = {
weather: {
command: 'npx',
args: ['-y', '@modelcontextprotocol/server-weather'],
},
github: {
command: 'npx',
args: ['-y', '@modelcontextprotocol/server-github'],
env: {
GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN || '',
},
},
};
Use the template in mcp-server-example.ts to create your own servers:
const TOOLS = [
{
name: 'my_custom_tool',
description: 'Does something useful',
inputSchema: {
type: 'object',
properties: {
param: { type: 'string', description: 'A parameter' },
},
required: ['param'],
},
},
];
server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
switch (name) {
case 'my_custom_tool':
const result = await myCustomFunction(args.param);
return {
content: [{ type: 'text', text: JSON.stringify(result) }],
};
default:
throw new Error(`Unknown tool: ${name}`);
}
});
# Compile your server
tsc src/servers/mcp-server-example.ts --outDir dist/servers
# Add to mcp-config.ts
export const MCP_SERVERS = {
custom: {
command: 'node',
args: ['./dist/servers/mcp-server-example.js'],
},
};
Test servers work correctly before integration:
# Test weather server
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | \
npx -y @modelcontextprotocol/server-weather
# Expected output: JSON with list of weather tools
# Build your server
npm run build
# Test it
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | \
node dist/servers/mcp-server-example.js
Create a simple test script test-mcp.ts:
import { initializeMCPTools } from './src/agent';
async function test() {
console.log('Testing MCP integration...');
const { tools } = await initializeMCPTools();
console.log(`β
Found ${tools.length} tools:`);
tools.forEach(tool => {
console.log(` - ${tool.name}: ${tool.description}`);
});
process.exit(0);
}
test().catch(console.error);
Run it:
npx ts-node test-mcp.ts
import { submitQuestion } from './src/langgraph';
import { HumanMessage } from '@langchain/core/messages';
async function testAgent() {
const messages = [
new HumanMessage('What is the weather in London?'),
];
const stream = await submitQuestion(messages, 'test-chat-id');
for await (const event of stream) {
console.log(event);
}
}
testAgent();
# Compile TypeScript
npm run build
# Or with watch mode during development
npm run dev
pm2 start dist/index.js --name "mcp-agent"
// In your code
mcpClient.on('serverCrash', async (serverName) => {
console.error(`Server ${serverName} crashed, restarting...`);
await mcpClient.restartServer(serverName);
});
const status = getMCPStatus();
console.log('MCP Status:', status);
// Output: { weather: { connected: true, toolCount: 2 }, ... }
process.on('SIGTERM', () => {
console.log('Shutting down...');
mcpClient.shutdown();
process.exit(0);
});
Problem: Trying to use tools before initialization.
Solution: Ensure initializeMCPTools() is called before submitQuestion():
await ensureMCPInitialized();
Problem: MCP server process not spawning.
Solution:
which npx or which nodeProblem: Tools not loading from server.
Solution:
ACTIVE_SERVERS array includes your serverMCP_SERVERS configurationProblem: Tool runs but returns error.
Solution:
Problem: MCP server process exits unexpectedly.
Solution:
restartServer() method to recoverProblem: Tools execute in isolation but fail in LangGraph.
Solution:
toolNode is properly exportedEnable verbose logging:
// In mcp-client.ts, add more console.log statements
// Or set environment variable
process.env.DEBUG = 'mcp:*';
If you're still stuck:
2>&1 | tee server.logUse this checklist to track your migration progress:
@modelcontextprotocol/sdk and zodmcp-client.ts with production clientmcp-config.ts with server configurationsagent.ts to use MCP clientlanggraph.ts with initialization checkACTIVE_SERVERS in mcp-config.envProject Summary:
This project migrated a LangGraph-based agent from the wxflows toolchain to an MCP (Model Context Protocol) server architecture. The goal was to replace tightly coupled tool integrations with a pluggable MCP client and server model, making tools easier to manage, test, and extend.
Key Achievements:
toolNode pattern.Challenges and Solutions:
Challenge: Converting from a monolithic wxflows integration to a pluggable MCP architecture introduced bootstrapping order and initialization race conditions.
ensureMCPInitialized() pattern that lazily initializes the MCP client before any workflow execution.Challenge: Tool schema and input expectations vary across servers (GraphQL vs RPC, different variable shapes).
Challenge: Streaming and event handling differences (model streaming tokens vs tool call events) caused mismatches between agent output and the SSE frontend.
After successful migration:
Questions? Review the troubleshooting section or check the MCP documentation.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
mcp, api_key
Streaming
Yes
Data region
global
Protocol support
Requires: mcp, lang:typescript, streaming
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/contract"
curl -s "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Market Recap MCP β a one-call 'what happened in markets' snapshot.
Korean stock research MCP: DART financials, global filings, daily prices and research tools.
Explains why stocks moved. 'Why did Tesla drop?' 'What happened to NVDA?' S&P 500/NASDAQ/Dow.
Live macro data for AI agents: regime, conditions, liquidity, with input provenance.
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"mcp",
"api_key"
],
"requires": [
"mcp",
"lang:typescript",
"streaming"
],
"forbidden": [],
"supportsMcp": true,
"supportsA2a": false,
"supportsStreaming": true,
"inputSchemaRef": "https://github.com/Deeppjp116/Smart-Agent#input",
"outputSchemaRef": "https://github.com/Deeppjp116/Smart-Agent#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:46:41.791Z",
"sourceUpdatedAt": "2026-02-24T19:46:41.791Z",
"freshnessSeconds": 19553190
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-10-09T03:13:12.327Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "supported",
"confidenceSource": "contract",
"notes": "Confirmed by capability contract"
}
],
"flattenedTokens": "protocol:MCP|supported|contract"
}Facts JSON
[
{
"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": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:41.791Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "mcp, api_key",
"href": "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:41.791Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/Deeppjp116/Smart-Agent#input",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:41.791Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Deeppjp116",
"href": "https://github.com/Deeppjp116/Smart-Agent",
"sourceUrl": "https://github.com/Deeppjp116/Smart-Agent",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-deeppjp116-smart-agent/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub Β· GitHub",
"description": "Fresh crawlable documentation was indexed for 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
}
]Sponsored
Ads related to agent_langgraph and adjacent AI workflows.