Skip to main content
teams-anthropic-integration 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.
Jump to install Skills Marketplace Discover and explore AI skills built by the community.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Copy promptShow prompt details A direct command skips the review prompt. Inspect the source before running it.
npx skills add https://github.com/duclm1x1/Dive-Ai --skill teams-anthropic-integrationThe command stays on one line. Scroll horizontally to inspect it before copying.
Prefer a local copy? Download the files currently available to SkillsMP.
Download Zip Downloading... Related occupations SOC
Based on SOC occupation classification
name teams-anthropic-integration description 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. license MIT compatibility Node.js 18+, @microsoft/teams.ai metadata {"author":"youdotcom-oss","category":"enterprise-integration","version":"1.1.0","keywords":"microsoft-teams,teams-ai,anthropic,claude,mcp,you.com,web-search,content-extraction"}
Build Teams.ai Apps with Anthropic Claude
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.
Choose Your Path
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
Decision Point
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
Path A: Basic Setup Use Anthropic Claude models in your Teams.ai app without additional dependencies.
A1. Install Package npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai
A2. Get Anthropic API Key
ANTHROPIC_API_KEY=your-anthropic-api-key
A3. Ask: New or Existing App?
New Teams app : Use entire template below
Existing app : Add Claude model to existing setup
A4. Basic Template 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 );
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 ,
});
A5. Choose Your Model
AnthropicModel .CLAUDE_OPUS_4_5
AnthropicModel .CLAUDE_SONNET_4_5
AnthropicModel .CLAUDE_HAIKU_3_5
A6. Test Basic Setup Send a message in Teams to verify Claude responds.
Path B: With You.com MCP Add web search and content extraction to your Claude-powered Teams app.
B1. Install Packages npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai @microsoft/teams.mcpclient
B2. Get API Keys
ANTHROPIC_API_KEY=your-anthropic-api-key
YDC_API_KEY=your-you-com-api-key
B3. Ask: New or Existing App?
New Teams app : Use entire template below
Existing app : Add MCP to existing Claude setup
B4. MCP Template 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' ;
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' );
}
const logger = new ConsoleLogger ('mcp-client' , { level : 'info' });
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 );
B5. Test MCP Integration 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 "
Available Claude Models Model Enum Best For Claude Opus 4.5 AnthropicModel.CLAUDE_OPUS_4_5Complex tasks, highest capability Claude Sonnet 4.5 AnthropicModel.CLAUDE_SONNET_4_5Balanced intelligence and speed (recommended) Claude Haiku 3.5 AnthropicModel.CLAUDE_HAIKU_3_5Fast responses, efficiency Claude Sonnet 3.5 AnthropicModel.CLAUDE_SONNET_3_5Previous generation, stable
Advanced Features
Streaming Responses const response = await model.send (
{ role : 'user' , content : 'Write a short story' },
{
onChunk : async (delta) => {
process.stdout .write (delta);
},
}
);
Function Calling 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 }) => {
return { temperature : 72 , conditions : 'Sunny' };
},
},
},
}
);
Conversation Memory import { LocalMemory } from '@microsoft/teams.ai' ;
const memory = new LocalMemory ();
await model.send (
{ role : 'user' , content : 'My name is Alice' },
{ messages : memory }
);
const response = await model.send (
{ role : 'user' , content : 'What is my name?' },
{ messages : memory }
);
Validation Checklist
Path A Checklist
Path B Checklist
Common Issues
Path A Issues "Cannot find module @youdotcom-oss/teams-anthropic"
npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk
"ANTHROPIC_API_KEY environment variable is required"
"Invalid model identifier"
Use enum: AnthropicModel.CLAUDE_SONNET_4_5
Don't use string: 'claude-sonnet-4-5-20250929'
Path B Issues "YDC_API_KEY environment variable is required"
"Cannot find module @microsoft/teams.mcpclient"
npm install @microsoft/teams.mcpclient
getYouMcpConfig() Utility 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
getYouMcpConfig ()
getYouMcpConfig ({ apiKey : 'your-custom-key' })
Resources More from this repository Persistent memory system for AI agents following Model Context Protocol (MCP). Use for storing long-term memories across sessions, semantic search of past knowledge, building knowledge graphs, auto-injecting context, deduplicating memories, syncing to cloud storage. Essential for agents that need to remember decisions, solutions, preferences, and learned patterns over time.
Persistent memory system for AI agents following Model Context Protocol (MCP). Use for storing long-term memories across sessions, semantic search of past knowledge, building knowledge graphs, auto-injecting context, deduplicating memories, syncing to cloud storage. Essential for agents that need to remember decisions, solutions, preferences, and learned patterns over time.
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.