AlphaMoatによると、2026-09時点でBuild Teams.ai Apps with Anthropic Claudeのダウンロード数は2,973、スター数は1で、AIスキル全体5,078件中3,750位、開発では577件中475位です。
| プラットフォーム | インストール数 | ダウンロード数 | スター数 | コメント |
|---|---|---|---|---|
| ClawHub ↗ | 88 | 2798 | 1 | - |
| SkillHub ↗ | 188 | 2973 | 1 | — |
プラットフォームごとに集計方法と集計時点が異なります。
@youdotcom-oss/teams-anthropic で新規・既存の Teams.ai アプリに対話、ストリーム返信、関数呼び出し、会話記憶を設定します。ウェブ検索と内容抽出が必要な場合だけ、You.com MCP の分岐と依存パッケージを加えます。
資料公開日 2026-10-26
スキルのドキュメントをもとに生成した例であり、実際の実行結果ではありません。
スキルのドキュメントの記載に基づいて整理したもので、実際のインストールや動作は検証していません。
ANTHROPIC_API_KEY、You.com MCP の分岐には追加で YDC_API_KEY が必要です。@microsoft/teams.mcpclient と getYouMcpConfig() を加えます。2026-09 から集計方法を変更し、同名スキルを作者ごとに分けて集計し、全スキルを対象にしました。破線は変更前の月で、変更後のデータとは直接比較せず、変更をまたぐ増減も計算していません。
| 月 | ダウンロード数 | 前月比 | スター数 |
|---|---|---|---|
| 2026-09 | 2973 | — | 1 |
| 2026-08 | 2655 | +7.4% | 1 |
| 2026-07 | 2472 | +7.1% | 1 |
| 2026-06 | 2309 | +4.9% | 1 |
| 2026-05 | 2201 | — | 1 |
| 2026-03 | 1991 | — | 1 |
作者が公開した元のファイルをテキストのまま表示しています。AlphaMoat による編集や審査はしていません。リンクはクリックできません。コマンドは内容を確認してから実行してください。取得日 2026-10-23。
--- 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
```bash
npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai
```
### A2. Get Anthropic API Key
Get your API key from [console.anthropic.com](https://console.anthropic.com/)
```bash
# Add to .env
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
**For NEW Apps:**
```typescript
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:
```typescript
import { AnthropicChatModel, AnthropicModel } from '@youdotcom-oss/teams-anthropic';
```
Replace your existing model:
```typescript
const model = new AnthropicChatModel({
model: AnthropicModel.CLAUDE_SONNET_4_5,
apiKey: process.env.ANTHROPIC_API_KEY,
});
```
### A5. Choose Your Model
```typescript
// 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
```
### A6. Test Basic Setup
```bash
npm start
```
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
```bash
npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai @microsoft/teams.mcpclient
```
### B2. Get API Keys
- **Anthropic API key**: [console.anthropic.com](https://console.anthropic.com/)
- **You.com API key**: [you.com/platform/api-keys](https://you.com/platform/api-keys)
```bash
# Add to .env
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
**For NEW Apps:**
```typescript
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:
1. **Install MCP dependencies:**
```bash
npm install @microsoft/teams.mcpclient
```
2. **Add imports:**
```typescript
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';
```
3. **Validate You.com API key:**
```typescript
if (!process.env.YDC_API_KEY) {
throw new Error('YDC_API_KEY environment variable is required');
}
```
4. **Replace model with ChatPrompt:**
```typescript
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());
```
5. **Use prompt.send() instead of model.send():**
```typescript
const result = await prompt.send(activity.text);
```
### B5. Test MCP Integration
```bash
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"
---
## Available Claude Models
| Model | Enum | Best For |
|-------|------|----------|
| Claude Opus 4.5 | `AnthropicModel.CLAUDE_OPUS_4_5` | Complex tasks, highest capability |
| Claude Sonnet 4.5 | `AnthropicModel.CLAUDE_SONNET_4_5` | Balanced intelligence and speed (recommended) |
| Claude Haiku 3.5 | `AnthropicModel.CLAUDE_HAIKU_3_5` | Fast responses, efficiency |
| Claude Sonnet 3.5 | `AnthropicModel.CLAUDE_SONNET_3_5` | Previous generation, stable |
## Advanced Features
### Streaming Responses
```typescript
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);
},
}
);
```
### Function Calling
```typescript
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' };
},
},
},
}
);
```
### Conversation Memory
```typescript
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."
```
## Validation Checklist
### Path A Checklist
- [ ] 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
### Path B Checklist
- [ ] 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
## Common Issues
### Path A Issues
**"Cannot find module @youdotcom-oss/teams-anthropic"**
```bash
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'`
### Path B Issues
**"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"**
```bash
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
```typescript
// Option 1: Use environment variable (recommended)
getYouMcpConfig()
// Option 2: Custom API key
getYouMcpConfig({ apiKey: 'your-custom-key' })
```
## Resources
* **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
Interact with GitHub using the gh CLI. Use gh issue, gh pr, gh run, and gh api for issues, PRs, CI runs, and advanced queries.
Multi search engine integration with 16 engines (7 CN + 9 Global). Supports advanced search operators, time filters, site search, privacy engines, and Wolfra...
Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.
Generate valid Mermaid diagrams like flowcharts, sequence diagrams, mind maps, ER diagrams, or user journeys from text or product descriptions.
YouTube Data API integration with managed OAuth. Search videos, manage playlists, access channel data, and interact with comments. Use this skill when users want to interact with YouTube. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the maton CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a YouTube connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a YouTube action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with YouTube examples; they add no YouTube capability - YouTube is not an event source, a trigger cannot read YouTube data, and the files under references/<source>/triggers.md are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).
GitHub API integration with managed OAuth. Access repositories, issues, pull requests, commits, branches, and users. Use this skill when users want to interact with GitHub repositories, manage issues and PRs, search code, or automate workflows. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the maton CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a GitHub connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a GitHub action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with GitHub examples; they add no GitHub capability - GitHub is itself an event source, so its own events are in references/github/triggers.md, and the files under references/<source>/triggers.md are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).
計画、実装、検証、テストをカバーするコーディング作業のスキルです。
Essential Docker commands and workflows for container management, image operations, and debugging.
データ月:2026-09 · ダウンロード数、スター数、インストール数は公開スキルレジストリ(ClawHub、SkillHub)から月単位で集計しています。詳しくはデータの方法論をご覧ください。