Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Use @youdotcom-oss/teams-anthropic to add Anthropic Claude models (Opus, Sonnet, Haiku) to Microsoft Teams.ai applications. Optionally integrate You.com MCP server for web search and content extraction.
Use @youdotcom-oss/teams-anthropic to add Anthropic Claude models (Opus, Sonnet, Haiku) to Microsoft Teams.ai applications. Optionally integrate You.com MCP server for web search and content extraction.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
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.
Path A: Basic Setup (Recommended for getting started) Use Anthropic Claude models in Teams.ai Chat, streaming, function calling No additional dependencies Path B: With You.com MCP (For web search capabilities) Everything in Path A Web search and content extraction via You.com Real-time information access
Ask: Do you need web search and content extraction in your Teams app? NO โ Use Path A: Basic Setup (simpler, faster) YES โ Use Path B: With You.com MCP
Use Anthropic Claude models in your Teams.ai app without additional dependencies.
npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai
Get your API key from console.anthropic.com # Add to .env ANTHROPIC_API_KEY=your-anthropic-api-key
New Teams app: Use entire template below Existing app: Add Claude model to existing setup
For NEW Apps: import { App } from '@microsoft/teams.apps'; import { AnthropicChatModel, AnthropicModel } from '@youdotcom-oss/teams-anthropic'; if (!process.env.ANTHROPIC_API_KEY) { throw new Error('ANTHROPIC_API_KEY environment variable is required'); } const model = new AnthropicChatModel({ model: AnthropicModel.CLAUDE_SONNET_4_5, apiKey: process.env.ANTHROPIC_API_KEY, requestOptions: { max_tokens: 2048, temperature: 0.7, }, }); const app = new App(); app.on('message', async ({ send, activity }) => { await send({ type: 'typing' }); const response = await model.send( { role: 'user', content: activity.text } ); if (response.content) { await send(response.content); } }); app.start().catch(console.error); For EXISTING Apps: Add to your existing imports: import { AnthropicChatModel, AnthropicModel } from '@youdotcom-oss/teams-anthropic'; Replace your existing model: const model = new AnthropicChatModel({ model: AnthropicModel.CLAUDE_SONNET_4_5, apiKey: process.env.ANTHROPIC_API_KEY, });
// Most capable - best for complex tasks AnthropicModel.CLAUDE_OPUS_4_5 // Balanced intelligence and speed (recommended) AnthropicModel.CLAUDE_SONNET_4_5 // Fast and efficient AnthropicModel.CLAUDE_HAIKU_3_5
npm start Send a message in Teams to verify Claude responds.
Add web search and content extraction to your Claude-powered Teams app.
npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai @microsoft/teams.mcpclient
Anthropic API key: console.anthropic.com You.com API key: you.com/platform/api-keys # Add to .env ANTHROPIC_API_KEY=your-anthropic-api-key YDC_API_KEY=your-you-com-api-key
New Teams app: Use entire template below Existing app: Add MCP to existing Claude setup
For NEW Apps: import { App } from '@microsoft/teams.apps'; import { ChatPrompt } from '@microsoft/teams.ai'; import { ConsoleLogger } from '@microsoft/teams.common'; import { McpClientPlugin } from '@microsoft/teams.mcpclient'; import { AnthropicChatModel, AnthropicModel, getYouMcpConfig, } from '@youdotcom-oss/teams-anthropic'; // Validate environment if (!process.env.ANTHROPIC_API_KEY) { throw new Error('ANTHROPIC_API_KEY environment variable is required'); } if (!process.env.YDC_API_KEY) { throw new Error('YDC_API_KEY environment variable is required'); } // Configure logger const logger = new ConsoleLogger('mcp-client', { level: 'info' }); // Create prompt with MCP integration const prompt = new ChatPrompt( { instructions: 'You are a helpful assistant with access to web search and content extraction. Use these tools to provide accurate, up-to-date information.', model: new AnthropicChatModel({ model: AnthropicModel.CLAUDE_SONNET_4_5, apiKey: process.env.ANTHROPIC_API_KEY, requestOptions: { max_tokens: 2048, }, }), }, [new McpClientPlugin({ logger })], ).usePlugin('mcpClient', getYouMcpConfig()); const app = new App(); app.on('message', async ({ send, activity }) => { await send({ type: 'typing' }); const result = await prompt.send(activity.text); if (result.content) { await send(result.content); } }); app.start().catch(console.error); For EXISTING Apps with Claude: If you already have Path A setup, add MCP integration: Install MCP dependencies: npm install @microsoft/teams.mcpclient Add imports: import { ChatPrompt } from '@microsoft/teams.ai'; import { ConsoleLogger } from '@microsoft/teams.common'; import { McpClientPlugin } from '@microsoft/teams.mcpclient'; import { getYouMcpConfig } from '@youdotcom-oss/teams-anthropic'; Validate You.com API key: if (!process.env.YDC_API_KEY) { throw new Error('YDC_API_KEY environment variable is required'); } Replace model with ChatPrompt: const logger = new ConsoleLogger('mcp-client', { level: 'info' }); const prompt = new ChatPrompt( { instructions: 'Your instructions here', model: new AnthropicChatModel({ model: AnthropicModel.CLAUDE_SONNET_4_5, apiKey: process.env.ANTHROPIC_API_KEY, }), }, [new McpClientPlugin({ logger })], ).usePlugin('mcpClient', getYouMcpConfig()); Use prompt.send() instead of model.send(): const result = await prompt.send(activity.text);
npm start Ask Claude a question that requires web search: "What are the latest developments in AI?" "Search for React documentation" "Extract content from https://example.com"
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
const response = await model.send( { role: 'user', content: 'Write a short story' }, { onChunk: async (delta) => { // Stream each token as it arrives process.stdout.write(delta); }, } );
const response = await model.send( { role: 'user', content: 'What is the weather in San Francisco?' }, { functions: { get_weather: { description: 'Get the current weather for a location', parameters: { location: { type: 'string', description: 'City name' }, }, handler: async (args: { location: string }) => { // Your API call here return { temperature: 72, conditions: 'Sunny' }; }, }, }, } );
import { LocalMemory } from '@microsoft/teams.ai'; const memory = new LocalMemory(); // First message await model.send( { role: 'user', content: 'My name is Alice' }, { messages: memory } ); // Second message - Claude remembers const response = await model.send( { role: 'user', content: 'What is my name?' }, { messages: memory } ); // Response: "Your name is Alice."
Package installed: @youdotcom-oss/teams-anthropic Environment variable set: ANTHROPIC_API_KEY Model configured with AnthropicChatModel Model selection chosen (Opus/Sonnet/Haiku) App tested with basic messages
All Path A items completed Additional package installed: @microsoft/teams.mcpclient Environment variable set: YDC_API_KEY Logger configured ChatPrompt configured with getYouMcpConfig() App tested with web search queries
"Cannot find module @youdotcom-oss/teams-anthropic" npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk "ANTHROPIC_API_KEY environment variable is required" Get key from: https://console.anthropic.com/ Add to .env: ANTHROPIC_API_KEY=your-key-here "Invalid model identifier" Use enum: AnthropicModel.CLAUDE_SONNET_4_5 Don't use string: 'claude-sonnet-4-5-20250929'
"YDC_API_KEY environment variable is required" Get key from: https://you.com/platform/api-keys Add to .env: YDC_API_KEY=your-key-here "MCP connection fails" Verify API key is valid at https://you.com/platform/api-keys Check network connectivity Review logger output for details "Cannot find module @microsoft/teams.mcpclient" npm install @microsoft/teams.mcpclient
Automatically configures You.com MCP connection: URL: https://api.you.com/mcp Authentication: Bearer token from YDC_API_KEY User-Agent: Includes package version for telemetry // Option 1: Use environment variable (recommended) getYouMcpConfig() // Option 2: Custom API key getYouMcpConfig({ apiKey: 'your-custom-key' })
Package: https://github.com/youdotcom-oss/dx-toolkit/tree/main/packages/teams-anthropic You.com MCP: https://documentation.you.com/developer-resources/mcp-server Anthropic API: https://console.anthropic.com/ You.com API Keys: https://you.com/platform/api-keys
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.