{
  "schemaVersion": "1.0",
  "item": {
    "slug": "teams-anthropic-integration",
    "name": "Build Teams.ai Apps with Anthropic Claude",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/EdwardIrby/teams-anthropic-integration",
    "canonicalUrl": "https://clawhub.ai/EdwardIrby/teams-anthropic-integration",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/teams-anthropic-integration",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=teams-anthropic-integration",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/teams-anthropic-integration"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/teams-anthropic-integration",
    "agentPageUrl": "https://openagent3.xyz/skills/teams-anthropic-integration/agent",
    "manifestUrl": "https://openagent3.xyz/skills/teams-anthropic-integration/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/teams-anthropic-integration/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Build Teams.ai Apps with Anthropic Claude",
        "body": "Use @youdotcom-oss/teams-anthropic to add Claude models (Opus, Sonnet, Haiku) to Microsoft Teams.ai applications. Optionally integrate You.com MCP server for web search and content extraction."
      },
      {
        "title": "Choose Your Path",
        "body": "Path A: Basic Setup (Recommended for getting started)\n\nUse Anthropic Claude models in Teams.ai\nChat, streaming, function calling\nNo additional dependencies\n\nPath B: With You.com MCP (For web search capabilities)\n\nEverything in Path A\nWeb search and content extraction via You.com\nReal-time information access"
      },
      {
        "title": "Decision Point",
        "body": "Ask: Do you need web search and content extraction in your Teams app?\n\nNO → Use Path A: Basic Setup (simpler, faster)\nYES → Use Path B: With You.com MCP"
      },
      {
        "title": "Path A: Basic Setup",
        "body": "Use Anthropic Claude models in your Teams.ai app without additional dependencies."
      },
      {
        "title": "A1. Install Package",
        "body": "npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai"
      },
      {
        "title": "A2. Get Anthropic API Key",
        "body": "Get your API key from console.anthropic.com\n\n# Add to .env\nANTHROPIC_API_KEY=your-anthropic-api-key"
      },
      {
        "title": "A3. Ask: New or Existing App?",
        "body": "New Teams app: Use entire template below\nExisting app: Add Claude model to existing setup"
      },
      {
        "title": "A4. Basic Template",
        "body": "For NEW Apps:\n\nimport { App } from '@microsoft/teams.apps';\nimport { AnthropicChatModel, AnthropicModel } from '@youdotcom-oss/teams-anthropic';\n\nif (!process.env.ANTHROPIC_API_KEY) {\n  throw new Error('ANTHROPIC_API_KEY environment variable is required');\n}\n\nconst model = new AnthropicChatModel({\n  model: AnthropicModel.CLAUDE_SONNET_4_5,\n  apiKey: process.env.ANTHROPIC_API_KEY,\n  requestOptions: {\n    max_tokens: 2048,\n    temperature: 0.7,\n  },\n});\n\nconst app = new App();\n\napp.on('message', async ({ send, activity }) => {\n  await send({ type: 'typing' });\n\n  const response = await model.send(\n    { role: 'user', content: activity.text }\n  );\n\n  if (response.content) {\n    await send(response.content);\n  }\n});\n\napp.start().catch(console.error);\n\nFor EXISTING Apps:\n\nAdd to your existing imports:\n\nimport { AnthropicChatModel, AnthropicModel } from '@youdotcom-oss/teams-anthropic';\n\nReplace your existing model:\n\nconst model = new AnthropicChatModel({\n  model: AnthropicModel.CLAUDE_SONNET_4_5,\n  apiKey: process.env.ANTHROPIC_API_KEY,\n});"
      },
      {
        "title": "A5. Choose Your Model",
        "body": "// Most capable - best for complex tasks\nAnthropicModel.CLAUDE_OPUS_4_5\n\n// Balanced intelligence and speed (recommended)\nAnthropicModel.CLAUDE_SONNET_4_5\n\n// Fast and efficient\nAnthropicModel.CLAUDE_HAIKU_3_5"
      },
      {
        "title": "A6. Test Basic Setup",
        "body": "npm start\n\nSend a message in Teams to verify Claude responds."
      },
      {
        "title": "Path B: With You.com MCP",
        "body": "Add web search and content extraction to your Claude-powered Teams app."
      },
      {
        "title": "B1. Install Packages",
        "body": "npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai @microsoft/teams.mcpclient"
      },
      {
        "title": "B2. Get API Keys",
        "body": "Anthropic API key: console.anthropic.com\nYou.com API key: you.com/platform/api-keys\n\n# Add to .env\nANTHROPIC_API_KEY=your-anthropic-api-key\nYDC_API_KEY=your-you-com-api-key"
      },
      {
        "title": "B3. Ask: New or Existing App?",
        "body": "New Teams app: Use entire template below\nExisting app: Add MCP to existing Claude setup"
      },
      {
        "title": "B4. MCP Template",
        "body": "For NEW Apps:\n\nimport { App } from '@microsoft/teams.apps';\nimport { ChatPrompt } from '@microsoft/teams.ai';\nimport { ConsoleLogger } from '@microsoft/teams.common';\nimport { McpClientPlugin } from '@microsoft/teams.mcpclient';\nimport {\n  AnthropicChatModel,\n  AnthropicModel,\n  getYouMcpConfig,\n} from '@youdotcom-oss/teams-anthropic';\n\n// Validate environment\nif (!process.env.ANTHROPIC_API_KEY) {\n  throw new Error('ANTHROPIC_API_KEY environment variable is required');\n}\n\nif (!process.env.YDC_API_KEY) {\n  throw new Error('YDC_API_KEY environment variable is required');\n}\n\n// Configure logger\nconst logger = new ConsoleLogger('mcp-client', { level: 'info' });\n\n// Create prompt with MCP integration\nconst prompt = new ChatPrompt(\n  {\n    instructions: 'You are a helpful assistant with access to web search and content extraction. Use these tools to provide accurate, up-to-date information.',\n    model: new AnthropicChatModel({\n      model: AnthropicModel.CLAUDE_SONNET_4_5,\n      apiKey: process.env.ANTHROPIC_API_KEY,\n      requestOptions: {\n        max_tokens: 2048,\n      },\n    }),\n  },\n  [new McpClientPlugin({ logger })],\n).usePlugin('mcpClient', getYouMcpConfig());\n\nconst app = new App();\n\napp.on('message', async ({ send, activity }) => {\n  await send({ type: 'typing' });\n\n  const result = await prompt.send(activity.text);\n  if (result.content) {\n    await send(result.content);\n  }\n});\n\napp.start().catch(console.error);\n\nFor EXISTING Apps with Claude:\n\nIf you already have Path A setup, add MCP integration:\n\nInstall MCP dependencies:\nnpm install @microsoft/teams.mcpclient\n\n\n\nAdd imports:\nimport { ChatPrompt } from '@microsoft/teams.ai';\nimport { ConsoleLogger } from '@microsoft/teams.common';\nimport { McpClientPlugin } from '@microsoft/teams.mcpclient';\nimport { getYouMcpConfig } from '@youdotcom-oss/teams-anthropic';\n\n\n\nValidate You.com API key:\nif (!process.env.YDC_API_KEY) {\n  throw new Error('YDC_API_KEY environment variable is required');\n}\n\n\n\nReplace model with ChatPrompt:\nconst logger = new ConsoleLogger('mcp-client', { level: 'info' });\n\nconst prompt = new ChatPrompt(\n  {\n    instructions: 'Your instructions here',\n    model: new AnthropicChatModel({\n      model: AnthropicModel.CLAUDE_SONNET_4_5,\n      apiKey: process.env.ANTHROPIC_API_KEY,\n    }),\n  },\n  [new McpClientPlugin({ logger })],\n).usePlugin('mcpClient', getYouMcpConfig());\n\n\n\nUse prompt.send() instead of model.send():\nconst result = await prompt.send(activity.text);"
      },
      {
        "title": "B5. Test MCP Integration",
        "body": "npm start\n\nAsk Claude a question that requires web search:\n\n\"What are the latest developments in AI?\"\n\"Search for React documentation\"\n\"Extract content from https://example.com\""
      },
      {
        "title": "Available Claude Models",
        "body": "ModelEnumBest ForClaude Opus 4.5AnthropicModel.CLAUDE_OPUS_4_5Complex tasks, highest capabilityClaude Sonnet 4.5AnthropicModel.CLAUDE_SONNET_4_5Balanced intelligence and speed (recommended)Claude Haiku 3.5AnthropicModel.CLAUDE_HAIKU_3_5Fast responses, efficiencyClaude Sonnet 3.5AnthropicModel.CLAUDE_SONNET_3_5Previous generation, stable"
      },
      {
        "title": "Streaming Responses",
        "body": "const response = await model.send(\n  { role: 'user', content: 'Write a short story' },\n  {\n    onChunk: async (delta) => {\n      // Stream each token as it arrives\n      process.stdout.write(delta);\n    },\n  }\n);"
      },
      {
        "title": "Function Calling",
        "body": "const response = await model.send(\n  { role: 'user', content: 'What is the weather in San Francisco?' },\n  {\n    functions: {\n      get_weather: {\n        description: 'Get the current weather for a location',\n        parameters: {\n          location: { type: 'string', description: 'City name' },\n        },\n        handler: async (args: { location: string }) => {\n          // Your API call here\n          return { temperature: 72, conditions: 'Sunny' };\n        },\n      },\n    },\n  }\n);"
      },
      {
        "title": "Conversation Memory",
        "body": "import { LocalMemory } from '@microsoft/teams.ai';\n\nconst memory = new LocalMemory();\n\n// First message\nawait model.send(\n  { role: 'user', content: 'My name is Alice' },\n  { messages: memory }\n);\n\n// Second message - Claude remembers\nconst response = await model.send(\n  { role: 'user', content: 'What is my name?' },\n  { messages: memory }\n);\n// Response: \"Your name is Alice.\""
      },
      {
        "title": "Path A Checklist",
        "body": "Package installed: @youdotcom-oss/teams-anthropic\n Environment variable set: ANTHROPIC_API_KEY\n Model configured with AnthropicChatModel\n Model selection chosen (Opus/Sonnet/Haiku)\n App tested with basic messages"
      },
      {
        "title": "Path B Checklist",
        "body": "All Path A items completed\n Additional package installed: @microsoft/teams.mcpclient\n Environment variable set: YDC_API_KEY\n Logger configured\n ChatPrompt configured with getYouMcpConfig()\n App tested with web search queries"
      },
      {
        "title": "Path A Issues",
        "body": "\"Cannot find module @youdotcom-oss/teams-anthropic\"\n\nnpm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk\n\n\"ANTHROPIC_API_KEY environment variable is required\"\n\nGet key from: https://console.anthropic.com/\nAdd to .env: ANTHROPIC_API_KEY=your-key-here\n\n\"Invalid model identifier\"\n\nUse enum: AnthropicModel.CLAUDE_SONNET_4_5\nDon't use string: 'claude-sonnet-4-5-20250929'"
      },
      {
        "title": "Path B Issues",
        "body": "\"YDC_API_KEY environment variable is required\"\n\nGet key from: https://you.com/platform/api-keys\nAdd to .env: YDC_API_KEY=your-key-here\n\n\"MCP connection fails\"\n\nVerify API key is valid at https://you.com/platform/api-keys\nCheck network connectivity\nReview logger output for details\n\n\"Cannot find module @microsoft/teams.mcpclient\"\n\nnpm install @microsoft/teams.mcpclient"
      },
      {
        "title": "getYouMcpConfig() Utility",
        "body": "Automatically configures You.com MCP connection:\n\nURL: https://api.you.com/mcp\nAuthentication: Bearer token from YDC_API_KEY\nUser-Agent: Includes package version for telemetry\n\n// Option 1: Use environment variable (recommended)\ngetYouMcpConfig()\n\n// Option 2: Custom API key\ngetYouMcpConfig({ apiKey: 'your-custom-key' })"
      },
      {
        "title": "Resources",
        "body": "Package: https://github.com/youdotcom-oss/dx-toolkit/tree/main/packages/teams-anthropic\nYou.com MCP: https://documentation.you.com/developer-resources/mcp-server\nAnthropic API: https://console.anthropic.com/\nYou.com API Keys: https://you.com/platform/api-keys"
      }
    ],
    "body": "Build Teams.ai Apps with Anthropic Claude\n\nUse @youdotcom-oss/teams-anthropic to add Claude models (Opus, Sonnet, Haiku) to Microsoft Teams.ai applications. Optionally integrate You.com MCP server for web search and content extraction.\n\nChoose Your Path\n\nPath A: Basic Setup (Recommended for getting started)\n\nUse Anthropic Claude models in Teams.ai\nChat, streaming, function calling\nNo additional dependencies\n\nPath B: With You.com MCP (For web search capabilities)\n\nEverything in Path A\nWeb search and content extraction via You.com\nReal-time information access\nDecision Point\n\nAsk: Do you need web search and content extraction in your Teams app?\n\nNO → Use Path A: Basic Setup (simpler, faster)\nYES → Use Path B: With You.com MCP\nPath A: Basic Setup\n\nUse Anthropic Claude models in your Teams.ai app without additional dependencies.\n\nA1. Install Package\nnpm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai\n\nA2. Get Anthropic API Key\n\nGet your API key from console.anthropic.com\n\n# Add to .env\nANTHROPIC_API_KEY=your-anthropic-api-key\n\nA3. Ask: New or Existing App?\nNew Teams app: Use entire template below\nExisting app: Add Claude model to existing setup\nA4. Basic Template\n\nFor NEW Apps:\n\nimport { App } from '@microsoft/teams.apps';\nimport { AnthropicChatModel, AnthropicModel } from '@youdotcom-oss/teams-anthropic';\n\nif (!process.env.ANTHROPIC_API_KEY) {\n  throw new Error('ANTHROPIC_API_KEY environment variable is required');\n}\n\nconst model = new AnthropicChatModel({\n  model: AnthropicModel.CLAUDE_SONNET_4_5,\n  apiKey: process.env.ANTHROPIC_API_KEY,\n  requestOptions: {\n    max_tokens: 2048,\n    temperature: 0.7,\n  },\n});\n\nconst app = new App();\n\napp.on('message', async ({ send, activity }) => {\n  await send({ type: 'typing' });\n\n  const response = await model.send(\n    { role: 'user', content: activity.text }\n  );\n\n  if (response.content) {\n    await send(response.content);\n  }\n});\n\napp.start().catch(console.error);\n\n\nFor EXISTING Apps:\n\nAdd to your existing imports:\n\nimport { AnthropicChatModel, AnthropicModel } from '@youdotcom-oss/teams-anthropic';\n\n\nReplace your existing model:\n\nconst model = new AnthropicChatModel({\n  model: AnthropicModel.CLAUDE_SONNET_4_5,\n  apiKey: process.env.ANTHROPIC_API_KEY,\n});\n\nA5. Choose Your Model\n// Most capable - best for complex tasks\nAnthropicModel.CLAUDE_OPUS_4_5\n\n// Balanced intelligence and speed (recommended)\nAnthropicModel.CLAUDE_SONNET_4_5\n\n// Fast and efficient\nAnthropicModel.CLAUDE_HAIKU_3_5\n\nA6. Test Basic Setup\nnpm start\n\n\nSend a message in Teams to verify Claude responds.\n\nPath B: With You.com MCP\n\nAdd web search and content extraction to your Claude-powered Teams app.\n\nB1. Install Packages\nnpm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai @microsoft/teams.mcpclient\n\nB2. Get API Keys\nAnthropic API key: console.anthropic.com\nYou.com API key: you.com/platform/api-keys\n# Add to .env\nANTHROPIC_API_KEY=your-anthropic-api-key\nYDC_API_KEY=your-you-com-api-key\n\nB3. Ask: New or Existing App?\nNew Teams app: Use entire template below\nExisting app: Add MCP to existing Claude setup\nB4. MCP Template\n\nFor NEW Apps:\n\nimport { App } from '@microsoft/teams.apps';\nimport { ChatPrompt } from '@microsoft/teams.ai';\nimport { ConsoleLogger } from '@microsoft/teams.common';\nimport { McpClientPlugin } from '@microsoft/teams.mcpclient';\nimport {\n  AnthropicChatModel,\n  AnthropicModel,\n  getYouMcpConfig,\n} from '@youdotcom-oss/teams-anthropic';\n\n// Validate environment\nif (!process.env.ANTHROPIC_API_KEY) {\n  throw new Error('ANTHROPIC_API_KEY environment variable is required');\n}\n\nif (!process.env.YDC_API_KEY) {\n  throw new Error('YDC_API_KEY environment variable is required');\n}\n\n// Configure logger\nconst logger = new ConsoleLogger('mcp-client', { level: 'info' });\n\n// Create prompt with MCP integration\nconst prompt = new ChatPrompt(\n  {\n    instructions: 'You are a helpful assistant with access to web search and content extraction. Use these tools to provide accurate, up-to-date information.',\n    model: new AnthropicChatModel({\n      model: AnthropicModel.CLAUDE_SONNET_4_5,\n      apiKey: process.env.ANTHROPIC_API_KEY,\n      requestOptions: {\n        max_tokens: 2048,\n      },\n    }),\n  },\n  [new McpClientPlugin({ logger })],\n).usePlugin('mcpClient', getYouMcpConfig());\n\nconst app = new App();\n\napp.on('message', async ({ send, activity }) => {\n  await send({ type: 'typing' });\n\n  const result = await prompt.send(activity.text);\n  if (result.content) {\n    await send(result.content);\n  }\n});\n\napp.start().catch(console.error);\n\n\nFor EXISTING Apps with Claude:\n\nIf you already have Path A setup, add MCP integration:\n\nInstall MCP dependencies:\n\nnpm install @microsoft/teams.mcpclient\n\n\nAdd imports:\n\nimport { ChatPrompt } from '@microsoft/teams.ai';\nimport { ConsoleLogger } from '@microsoft/teams.common';\nimport { McpClientPlugin } from '@microsoft/teams.mcpclient';\nimport { getYouMcpConfig } from '@youdotcom-oss/teams-anthropic';\n\n\nValidate You.com API key:\n\nif (!process.env.YDC_API_KEY) {\n  throw new Error('YDC_API_KEY environment variable is required');\n}\n\n\nReplace model with ChatPrompt:\n\nconst logger = new ConsoleLogger('mcp-client', { level: 'info' });\n\nconst prompt = new ChatPrompt(\n  {\n    instructions: 'Your instructions here',\n    model: new AnthropicChatModel({\n      model: AnthropicModel.CLAUDE_SONNET_4_5,\n      apiKey: process.env.ANTHROPIC_API_KEY,\n    }),\n  },\n  [new McpClientPlugin({ logger })],\n).usePlugin('mcpClient', getYouMcpConfig());\n\n\nUse prompt.send() instead of model.send():\n\nconst result = await prompt.send(activity.text);\n\nB5. Test MCP Integration\nnpm start\n\n\nAsk Claude a question that requires web search:\n\n\"What are the latest developments in AI?\"\n\"Search for React documentation\"\n\"Extract content from https://example.com\"\nAvailable Claude Models\nModel\tEnum\tBest For\nClaude Opus 4.5\tAnthropicModel.CLAUDE_OPUS_4_5\tComplex tasks, highest capability\nClaude Sonnet 4.5\tAnthropicModel.CLAUDE_SONNET_4_5\tBalanced intelligence and speed (recommended)\nClaude Haiku 3.5\tAnthropicModel.CLAUDE_HAIKU_3_5\tFast responses, efficiency\nClaude Sonnet 3.5\tAnthropicModel.CLAUDE_SONNET_3_5\tPrevious generation, stable\nAdvanced Features\nStreaming Responses\nconst response = await model.send(\n  { role: 'user', content: 'Write a short story' },\n  {\n    onChunk: async (delta) => {\n      // Stream each token as it arrives\n      process.stdout.write(delta);\n    },\n  }\n);\n\nFunction Calling\nconst response = await model.send(\n  { role: 'user', content: 'What is the weather in San Francisco?' },\n  {\n    functions: {\n      get_weather: {\n        description: 'Get the current weather for a location',\n        parameters: {\n          location: { type: 'string', description: 'City name' },\n        },\n        handler: async (args: { location: string }) => {\n          // Your API call here\n          return { temperature: 72, conditions: 'Sunny' };\n        },\n      },\n    },\n  }\n);\n\nConversation Memory\nimport { LocalMemory } from '@microsoft/teams.ai';\n\nconst memory = new LocalMemory();\n\n// First message\nawait model.send(\n  { role: 'user', content: 'My name is Alice' },\n  { messages: memory }\n);\n\n// Second message - Claude remembers\nconst response = await model.send(\n  { role: 'user', content: 'What is my name?' },\n  { messages: memory }\n);\n// Response: \"Your name is Alice.\"\n\nValidation Checklist\nPath A Checklist\n Package installed: @youdotcom-oss/teams-anthropic\n Environment variable set: ANTHROPIC_API_KEY\n Model configured with AnthropicChatModel\n Model selection chosen (Opus/Sonnet/Haiku)\n App tested with basic messages\nPath B Checklist\n All Path A items completed\n Additional package installed: @microsoft/teams.mcpclient\n Environment variable set: YDC_API_KEY\n Logger configured\n ChatPrompt configured with getYouMcpConfig()\n App tested with web search queries\nCommon Issues\nPath A Issues\n\n\"Cannot find module @youdotcom-oss/teams-anthropic\"\n\nnpm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk\n\n\n\"ANTHROPIC_API_KEY environment variable is required\"\n\nGet key from: https://console.anthropic.com/\nAdd to .env: ANTHROPIC_API_KEY=your-key-here\n\n\"Invalid model identifier\"\n\nUse enum: AnthropicModel.CLAUDE_SONNET_4_5\nDon't use string: 'claude-sonnet-4-5-20250929'\nPath B Issues\n\n\"YDC_API_KEY environment variable is required\"\n\nGet key from: https://you.com/platform/api-keys\nAdd to .env: YDC_API_KEY=your-key-here\n\n\"MCP connection fails\"\n\nVerify API key is valid at https://you.com/platform/api-keys\nCheck network connectivity\nReview logger output for details\n\n\"Cannot find module @microsoft/teams.mcpclient\"\n\nnpm install @microsoft/teams.mcpclient\n\ngetYouMcpConfig() Utility\n\nAutomatically configures You.com MCP connection:\n\nURL: https://api.you.com/mcp\nAuthentication: Bearer token from YDC_API_KEY\nUser-Agent: Includes package version for telemetry\n// Option 1: Use environment variable (recommended)\ngetYouMcpConfig()\n\n// Option 2: Custom API key\ngetYouMcpConfig({ apiKey: 'your-custom-key' })\n\nResources\nPackage: https://github.com/youdotcom-oss/dx-toolkit/tree/main/packages/teams-anthropic\nYou.com MCP: https://documentation.you.com/developer-resources/mcp-server\nAnthropic API: https://console.anthropic.com/\nYou.com API Keys: https://you.com/platform/api-keys"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/EdwardIrby/teams-anthropic-integration",
    "publisherUrl": "https://clawhub.ai/EdwardIrby/teams-anthropic-integration",
    "owner": "EdwardIrby",
    "version": "1.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/teams-anthropic-integration",
    "downloadUrl": "https://openagent3.xyz/downloads/teams-anthropic-integration",
    "agentUrl": "https://openagent3.xyz/skills/teams-anthropic-integration/agent",
    "manifestUrl": "https://openagent3.xyz/skills/teams-anthropic-integration/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/teams-anthropic-integration/agent.md"
  }
}