Edward Irby

Build Teams.ai Apps with Anthropic Claude

開発v1.1.0
作者:Edward Irby更新日 2026-05-11全 2 バージョン · 最新版の公開日 2026-02-01teams-anthropic-integration@clawhub_edwardirby/teams-anthropic-integration
コード生成バックエンド開発#Web Search

AlphaMoatによると、2026-09時点でBuild Teams.ai Apps with Anthropic Claudeのダウンロード数は2,973、スター数は1で、AIスキル全体5,078件中3,750位、開発では577件中475位です。

インストール数
188
ダウンロード数
2973
スター数
1
総合順位
#3,750
全体の上位 74% · 開発の上位 83%
プラットフォームインストール数ダウンロード数スター数コメント
ClawHub ↗8827981-
SkillHub ↗18829731—

プラットフォームごとに集計方法と集計時点が異なります。

このスキルでできること

@youdotcom-oss/teams-anthropic で新規・既存の Teams.ai アプリに対話、ストリーム返信、関数呼び出し、会話記憶を設定します。ウェブ検索と内容抽出が必要な場合だけ、You.com MCP の分岐と依存パッケージを加えます。

資料公開日 2026-10-26

できること

  • Teams アプリに Claude の対話を設定する

使う場面

  • Teams.ai アプリを新規作成・拡張するとき

プロンプト例

スキルのドキュメントをもとに生成した例であり、実際の実行結果ではありません。

既存の Teams.ai アプリへ、検索なしの基本経路で Claude を接続してください

利用条件

スキルのドキュメントの記載に基づいて整理したもので、実際のインストールや動作は検証していません。

認証に関する注意
基本経路には ANTHROPIC_API_KEY、You.com MCP の分岐には追加で YDC_API_KEY が必要です。
設定の要件
  • Node.js 18 以降と Teams.ai のパッケージが必要です。検索分岐だけに @microsoft/teams.mcpclient と getYouMcpConfig() を加えます。

月次の推移

ダウンロード数2973
1912248230522026-03 · ダウンロード数 19912026-05 · ダウンロード数 22012026-06 · ダウンロード数 23092026-07 · ダウンロード数 24722026-08 · ダウンロード数 26552026-09 · ダウンロード数 297326-0326-09
スター数1
0122026-03 · スター数 12026-05 · スター数 12026-06 · スター数 12026-07 · スター数 12026-08 · スター数 12026-09 · スター数 126-0326-09

2026-09 から集計方法を変更し、同名スキルを作者ごとに分けて集計し、全スキルを対象にしました。破線は変更前の月で、変更後のデータとは直接比較せず、変更をまたぐ増減も計算していません。

月ダウンロード数前月比スター数
2026-092973—1
2026-082655+7.4%1
2026-072472+7.1%1
2026-062309+4.9%1
2026-052201—1
2026-031991—1

SKILL.md 原文

作者が公開した元のファイルをテキストのまま表示しています。AlphaMoat による編集や審査はしていません。リンクはクリックできません。コマンドは内容を確認してから実行してください。取得日 2026-10-23。

11 KB・ClawHub v1.1.0
---
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
すべて表示(全 419 行)
---

# 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

開発の人気スキル

Github開発

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.

↓ 38.7万★ 708Peter Steinberger
Multi Search Engine開発

Multi search engine integration with 16 engines (7 CN + 9 Global). Supports advanced search operators, time filters, site search, privacy engines, and Wolfra...

↓ 16.2万★ 763g_pyAng
Mcporter開発

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.

↓ 8万★ 204Peter Steinberger
Mermaid Diagram開発

Generate valid Mermaid diagrams like flowcharts, sequence diagrams, mind maps, ER diagrams, or user journeys from text or product descriptions.

↓ 7.3万★ 59pupujanet-eng
YouTube開発

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).

↓ 6.2万★ 145byungkyu
GitHub開発

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).

↓ 3.8万★ 53byungkyu
Code開発

計画、実装、検証、テストをカバーするコーディング作業のスキルです。

↓ 3.7万★ 66Iván
Docker Essentials開発

Essential Docker commands and workflows for container management, image operations, and debugging.

↓ 3.7万★ 42Arnarsson

データ月:2026-09 · ダウンロード数、スター数、インストール数は公開スキルレジストリ(ClawHub、SkillHub)から月単位で集計しています。詳しくはデータの方法論をご覧ください。