{"id":"eba12c2a-240b-4fe3-af47-df6d1ca32f33","slug":"mcp-node-in-layers-mcp-client","name":"@node-in-layers/mcp-client","description":"An MCP Client Node In Layers Package, generated by the Node In Layers Toolkit.","canonicalUrl":"https://www.xpersona.co/mcp/mcp-node-in-layers-mcp-client","sourceUrl":"https://github.com/Node-In-Layers/mcp-client","homepage":null,"source":"GITHUB_MCP","vendor":{"slug":"node-in-layers","label":"Node In Layers","url":"https://github.com/Node-In-Layers/mcp-client"},"protocols":["MCP"],"capabilities":[],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":"1.5.0","freshnessAt":"2026-02-22T13:34:42.885Z","freshnessLabel":"Feb 22, 2026","securityReviewed":true,"openapiReady":true,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"MCP"},{"label":"Freshness","value":"Feb 22, 2026"},{"label":"Vendor","value":"Node In Layers"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"1.5.0"}],"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":"protocols","category":"compatibility","label":"Protocol compatibility","value":"MCP","href":"https://www.xpersona.co/api/v1/agents/mcp-node-in-layers-mcp-client/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/mcp-node-in-layers-mcp-client/contract","sourceType":"contract","confidence":"high","observedAt":"2026-02-24T19:46:11.679Z","isPublic":true},{"factKey":"auth_modes","category":"compatibility","label":"Auth modes","value":"mcp, api_key, oauth","href":"https://www.xpersona.co/api/v1/agents/mcp-node-in-layers-mcp-client/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/mcp-node-in-layers-mcp-client/contract","sourceType":"contract","confidence":"high","observedAt":"2026-02-24T19:46:11.679Z","isPublic":true},{"factKey":"schema_refs","category":"artifact","label":"Machine-readable schemas","value":"OpenAPI or schema references published","href":"https://github.com/Node-In-Layers/mcp-client#input","sourceUrl":"https://www.xpersona.co/api/v1/agents/mcp-node-in-layers-mcp-client/contract","sourceType":"contract","confidence":"high","observedAt":"2026-02-24T19:46:11.679Z","isPublic":true},{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Node In Layers","href":"https://github.com/Node-In-Layers/mcp-client","sourceUrl":"https://github.com/Node-In-Layers/mcp-client","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-node-in-layers-mcp-client/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/mcp-node-in-layers-mcp-client/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["Schema refs published","Trust evidence available"],"agentCard":{"name":"@node-in-layers/mcp-client","description":"An MCP Client Node In Layers Package, generated by the Node In Layers Toolkit.","source":"GITHUB_MCP","sourceId":"github-mcp:985523914","repository":"https://github.com/Node-In-Layers/mcp-client","documentation":"https://www.xpersona.co/mcp/mcp-node-in-layers-mcp-client/agent/mcp-node-in-layers-mcp-client","protocols":["MCP"],"languages":["typescript"],"install":{"command":"git clone https://github.com/Node-In-Layers/mcp-client.git","ecosystem":"git"},"examples":[{"kind":"example","language":"typescript","snippet":"// This has the common use mcp domain\nimport { * as mcp } from '@node-in-layers/mcp-client/mcp/index.js'\nimport { createClient as createMcpClient } from '@node-in-layers/mcp-client'\nimport * as domain1 from '../domain1/index.js'\nimport * as domain2 from '../domain2/index.js'\nimport * as domain3 from '../domain3/index.js'\nimport { YourConfig, YourSystemType } from '../types.ts'\n\nexport const create = (context: FeaturesContext<YourConfig>) => {\n  const createClient = (props: {\n    /**\n     * If using a frontend, you likely use OIDC and pass an oauth2 token in here.\n     */\n    oauth2Token?: string\n    /**\n     * NOTE: This is only useful for if you want to use your client from a backend, or from the CLI.\n     */\n    oauth2?: {\n      tokenUrl: string\n      clientId: string\n      clientSecret: string\n      scopes: string[]\n      extraParams?: Record<string, JsonAble>\n    }\n  }) => {\n\n    const config = {\n      systemName: context.config.systemName,\n      environment: context.config.environment,\n      domains: [mcp, domain1, domain2, domain3],\n      // These configurations can be put into your main config, and configure the MCP client itself.\n      mcp: context.config.mcpClient,\n      credentials: {\n        key: props.oauth2Token,\n      },\n      oauth2: props.oauth2,\n    }\n    return createMcpClient<SystemType>(config)\n  }\n\n  return {\n    createClient,\n  }\n}"},{"kind":"example","language":"typescript","snippet":"import { CoreNamespace, ServicesContext } from '@node-in-layers/core'\n// Import these from your Sdk/Client that you created\nimport { createClient, YourClient } from 'your-sdk'\n// This is your Config type for your frontend.\nimport { AppConfig } from '../types'\n\nconst create = async (context: ServicesContext<AppConfig>) => {\n  // Some common pattern of code for handling authentication to the client.\n  // When authorization is updated (like logging in) it re-creates the client.\n  const isAuthenticated = Boolean(context.config.authUser?.access_token)\n  const token = context.config.authUser?.access_token\n\n  const client = await createClient({\n    oauth2Token: token,\n  })\n\n  return {\n    client,\n    isAuthenticated,\n  }\n}"}]}}