> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anysite.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Cursor MCP 工具示例

> 在 Cursor IDE 中使用 Anysite MCP 的实际示例和工作流程

## 概述

本指南演示了在 Cursor IDE 中使用 Anysite MCP 工具的实际工作流程和示例。这些示例展示了如何利用 AI 驱动的 IDE 集成进行开发、研究和数据驱动编码。

## 基本使用

### 在 Cursor 中开始使用 MCP

配置完成后，只需打开 Cursor 并开始与 AI 助手聊天：

```
我可以使用哪些 MCP 工具？
```

Cursor AI 将列出来自已连接 MCP 服务器的所有可用 Anysite 工具。

### 快速数据提取

**示例：LinkedIn 个人资料分析**

在 Cursor AI 聊天中，输入：

```
从此 LinkedIn 个人资料中提取信息：
https://linkedin.com/in/satyanadella

重点关注：
- 当前职位和公司
- 职业发展
- 教育背景
```

Cursor 将使用 `linkedin_user` MCP 工具获取和分析数据。

***

## 开发工作流程

### 工作流程 1：构建销售情报功能

**场景：** 您正在构建一个需要 LinkedIn 数据增强的 CRM 功能。

**步骤 1：定义数据模型**

在 Cursor AI 中：

```
我正在构建一个潜在客户增强功能。从此 LinkedIn 个人资料提取数据
并基于可用数据建议一个 TypeScript 接口：
https://linkedin.com/in/example-profile
```

**步骤 2：生成代码**

```
使用我们刚才看到的 LinkedIn 数据结构，创建一个 TypeScript 服务
用于为我们的 CRM 获取和转换 LinkedIn 数据。
包括错误处理和速率限制。
```

**步骤 3：用真实数据测试**

```
通过从这些个人资料提取数据来测试服务：
- linkedin.com/in/profile1
- linkedin.com/in/profile2
验证响应是否符合我们的接口。
```

### 工作流程 2：竞争分析工具

**项目设置：**

```
my-competitor-tool/
├── .cursor/
│   └── mcp.json          # MCP 配置
├── src/
│   ├── analyzers/
│   │   └── company.ts
│   └── types/
│       └── linkedin.ts
└── package.json
```

**在 Cursor AI 聊天中：**

```
我正在构建一个竞争分析工具。对于这些公司：
- https://linkedin.com/company/competitor1
- https://linkedin.com/company/competitor2

提取：
1. 员工数量和增长
2. 最近的招聘信息
3. 关键高管

然后生成 TypeScript 代码来定期获取和比较这些数据。
```

### 工作流程 3：潜在客户评分系统

**定义评分标准：**

```
我正在构建一个潜在客户评分系统。对于此 LinkedIn 个人资料：
https://linkedin.com/in/potential-lead

提取相关数据并基于以下条件建议评分标准：
- 资历级别
- 公司规模
- 行业相关性
- 互动信号

然后创建一个 TypeScript 函数来评分潜在客户。
```

***

## 代码中的实时数据

### 示例 1：动态数据获取

**在您的项目中，询问 Cursor：**

```
我需要在 Node.js 应用中动态获取 LinkedIn 公司数据。
从 https://linkedin.com/company/target-company 提取示例数据
并创建一个返回此结构的 API 端点。
```

**Cursor 生成：**

```typescript theme={null}
// src/api/company.ts
import { Router } from 'express';

interface LinkedInCompany {
  name: string;
  industry: string;
  size: string;
  location: string;
  description: string;
  employeeCount: number;
  // ... 基于提取的数据
}

const router = Router();

router.get('/company/:slug', async (req, res) => {
  const { slug } = req.params;

  // MCP 工具集成将在这里
  const companyData = await fetchLinkedInCompany(slug);

  res.json(companyData);
});

export default router;
```

### 示例 2：数据验证

**用真实数据验证您的数据模型：**

```
将此 TypeScript 接口与实际 LinkedIn 个人资料数据进行比较：

interface UserProfile {
  name: string;
  headline: string;
  location: string;
  experience: Experience[];
}

从 linkedin.com/in/test-profile 提取数据并识别任何缺失的字段。
```

### 示例 3：生成测试固件

```
从这些个人资料提取真实数据：
- linkedin.com/in/engineer-profile
- linkedin.com/in/manager-profile
- linkedin.com/in/executive-profile

生成代表典型数据变化的 TypeScript 测试固件。
```

***

## 多平台研究

### 组合数据源

**跨平台研究一个人：**

```
全面研究这个人：
- LinkedIn：linkedin.com/in/target-person
- Instagram：@target_person（如果可用）
- Reddit 活动：u/target_person

编译统一的档案并识别其在线存在的模式。
```

### 监控竞争对手

```
对于竞争情报，分析：

1. 公司 LinkedIn：linkedin.com/company/competitor
2. 最近的 Reddit 提及：在 r/industry 中搜索"competitor name"

生成监控报告并建议用于显示此数据的 React 组件。
```

***

## 使用实时数据生成代码

### 生成 API 包装器

```
从 linkedin.com/in/sample-profile 提取完整数据结构
并生成：
1. 所有数据类型的 TypeScript 接口
2. 完整的 API 客户端类
3. Zod 验证模式
4. 使用真实数据作为固件的 Jest 测试用例
```

### 生成数据库模式

```
基于 linkedin.com/company/example 的 LinkedIn 公司数据：

生成：
1. 用于存储此数据的 Prisma 模式
2. 数据库迁移
3. CRUD 操作
```

### 生成文档

```
使用 LinkedIn 个人资料数据结构，生成：
1. 每个字段的 JSDoc 注释
2. OpenAPI 格式的 API 文档
3. 带有使用示例的 README
```

***

## 使用 MCP 数据调试

### 验证 API 响应

**当您的 API 没有返回预期数据时：**

```
我的 API 应该返回类似 LinkedIn 的数据。这是我得到的：
[粘贴您的 API 响应]

将此与 linkedin.com/in/test-profile 的实际 LinkedIn 数据进行比较
并识别差异。
```

### 调试数据转换

```
我正在转换 LinkedIn 数据但得到意外结果。

这是我的转换器：
[粘贴您的代码]

从 linkedin.com/in/test-profile 获取新数据，并逐步向我展示
应该如何转换。
```

***

## 高级技术

### 批量处理模式

**处理多个个人资料：**

```
我需要处理 100 个 LinkedIn 个人资料。设计一个系统：
1. 处理速率限制
2. 实现重试逻辑
3. 缓存结果
4. 报告进度

首先从这些个人资料提取示例数据：
- linkedin.com/in/profile1
- linkedin.com/in/profile2
- linkedin.com/in/profile3
```

### 事件驱动架构

```
设计一个用于 LinkedIn 数据更新的事件驱动系统：

1. 从 linkedin.com/company/target 获取初始数据
2. 为数据更改创建事件类型
3. 实现更改检测
4. 生成通知处理程序

向我展示 TypeScript 实现。
```

### 数据管道集成

```
我正在为 LinkedIn 数据构建 ETL 管道。设计：

1. 提取层（使用 MCP 工具）
2. 转换层（规范化数据）
3. 加载层（到 PostgreSQL）

包括错误处理和监控。
使用 linkedin.com/company/example 的数据演示
```

***

## 最佳实践

### 1. 数据模型优先

在设计数据模型之前始终提取真实数据：

```
在我设计数据库模式之前，向我展示
linkedin.com/in/representative-profile 的实际数据结构
```

### 2. 增量开发

使用真实数据验证增量构建功能：

```
步骤 1：向我展示 LinkedIn 个人资料数据结构
步骤 2：生成 TypeScript 接口
步骤 3：创建获取函数
步骤 4：添加错误处理
步骤 5：使用 3 个不同的个人资料测试
```

### 3. 安全考虑

<CardGroup cols={2}>
  <Card title="永远不要硬编码密钥" icon="key">
    始终在 `.cursor/mcp.json` 中使用环境变量存储 API 密钥
  </Card>

  <Card title="Git 忽略配置" icon="ban">
    如果 `.cursor/mcp.json` 包含 API 密钥，将其添加到 `.gitignore`
  </Card>

  <Card title="掩盖敏感数据" icon="eye-slash">
    共享代码或截图时，掩盖提取中的任何个人数据
  </Card>

  <Card title="注意速率限制" icon="clock">
    从一开始就设计您的代码以遵守 API 速率限制
  </Card>
</CardGroup>

### 4. 测试策略

```
对于我的 LinkedIn 集成测试，我需要：
1. 基于真实响应的模拟数据（从 linkedin.com/in/test 提取）
2. 边缘情况处理（空个人资料、私人账户）
3. 错误模拟（速率限制、网络故障）

生成全面的测试套件。
```

***

## 常见模式

### 模式 1：个人资料增强服务

```typescript theme={null}
// 请求 Cursor 基于真实数据提取生成
class ProfileEnrichmentService {
  async enrich(linkedinUrl: string): Promise<EnrichedProfile> {
    // 使用 MCP 工具集成的实现
  }
}
```

**在 Cursor 中：**

```
从 linkedin.com/in/sample-profile 提取数据并完成
此 ProfileEnrichmentService 类，具有适当的类型和错误处理。
```

### 模式 2：公司情报仪表板

```
设计一个显示以下内容的 React 仪表板：
1. 公司概览（从 linkedin.com/company/target 提取）
2. 员工增长图表
3. 最新动态时间线
4. 关键人物部分

生成带有 TailwindCSS 样式的组件。
```

### 模式 3：潜在客户资格评估工作流程

```
构建一个潜在客户资格评估工作流程：
1. 接收 LinkedIn URL 输入
2. 提取个人资料数据
3. 基于标准评分
4. 返回资格结果

使用 linkedin.com/in/potential-lead 测试
```

***

## 故障排除

<AccordionGroup>
  <Accordion title="MCP 工具在 Cursor AI 中不可用">
    **解决方案：**

    * 重新加载 Cursor 窗口（Cmd/Ctrl + Shift + P → "Reload Window"）
    * 验证 `.cursor/mcp.json` 语法有效
    * 检查 Node.js 是否已安装
    * 确保 API 密钥正确
  </Accordion>

  <Accordion title="数据提取缓慢">
    **解决方案：**

    * 检查您的互联网连接
    * 在 Anysite 仪表板中验证 API 速率限制
    * 考虑缓存频繁访问的数据
    * 尽可能使用批量请求
  </Accordion>

  <Accordion title="数据格式不匹配">
    **解决方案：**

    * 在定义类型之前始终提取新数据
    * 使用运行时验证（Zod、io-ts）
    * 优雅地处理可选字段
    * 在开发期间记录原始响应
  </Accordion>

  <Accordion title="API 密钥问题">
    **解决方案：**

    * 从 Anysite 仪表板重新生成密钥
    * 检查配置中的多余空格
    * 验证订阅是否活跃
    * 首先用直接 API 调用测试
  </Accordion>
</AccordionGroup>

***

## 资源

* [安装指南](/mcp-server/cursor-tool/installation)
* [查看所有 MCP 工具](/mcp-server/tools)
* [与 Claude Code 比较](/mcp-server/claude-code-tool/installation)
* [Cursor 文档](https://docs.cursor.com)

## 需要帮助？

<Card title="获取支持" icon="headset" href="mailto:support@anysite.io">
  联系我们的支持团队获取 Cursor MCP 工作流程帮助
</Card>
