内容
<div align="center">
<h1>
<img src="https://www.tny.dev/tny.svg" alt="tny.dev" height="30" style="vertical-align: middle; margin-right: 10px;">
MCP Server
</h1>
<h2>为AI代理构建的API优先链接缩短器</h2>
<p>第一方MCP服务器和DXT,适用于Claude、Cursor和其他AI助手</p>
[](https://www.npmjs.com/package/@specstory/tnydev-mcp)
[](https://opensource.org/licenses/MIT)
[](https://uptime.betterstack.com/?utm_source=status_badge)
[](https://nodejs.org)
[](https://modelcontextprotocol.io)
[](https://www.typescriptlang.org/)
[](https://github.com/specstoryai/tnydev-mcp/pulls)
[](https://claude.ai/desktop)
[](https://claude.ai/code)
[](https://cursor.sh)
[](https://codeium.com/windsurf)
[](https://zed.dev)
[](https://code.visualstudio.com)
</div>
---
## 🚀 为什么选择 tny.dev 作为 AI 代理?
### 针对突发的AI流量进行了优化。正是您的代理需要的时候。
旨在处理代理处理批量时的流量高峰。
<div align="center">
<table>
<tr>
<td align="center">
<h3>🤖 以代理为中心的设计</h3>
<p>官方MCP服务器,支持Claude、Cursor和其他AI助手。使用自然语言进行链接缩短,简单易用。</p>
</td>
<td align="center">
<h3>💰 经济性提升200倍</h3>
<p>每月仅需$9即可处理500个请求/小时。非常适合在突发情况下处理链接的AI工作流。</p>
</td>
<td align="center">
<h3>⏱️ 慷慨的速率限制</h3>
<p>每小时500个请求意味着您可以根据自动化需求自然扩展,而不会触及配额限制。</p>
</td>
</tr>
</table>
</div>
## 🎯 短链接服务的比较
<div align="center">
| 特性 | tny.dev | Bitly | Rebrandly | Short.io | TinyURL |
|------|---------|-------|-----------|----------|---------|
| **第一方 MCP Server** | ✅ 原生 | ⚠️ 第三方 | ✅ 原生 | ❌ 无 | ⚠️ 第三方 |
| **Claude 桌面扩展** | ✅ 原生 .dxt | ❌ 无 | ❌ 无 | ❌ 无 | ❌ 无 |
| **月费用** | ✅ **$9** | ❌ $199 | ⚠️ $29-35 | ⚠️ $19 | ✅ $9.99 |
| **每小时速率限制** | ✅ **500/小时** | ⚠️ ~69/小时* | ⚠️ ~35/小时* | ❌ ~1.4/小时* | ⚠️ ~14/小时* |
| **批量操作** | ✅ 100/请求 | ❌ 不支持 | ✅ 25/请求 | ✅ 1,000/请求 | ❌ 未记录 |
<sub>* 每小时有效速率是从每月配额除以720小时计算得出</sub>
</div>
## 🎨 其他功能
- **📱 二维码**:为所有缩短的 URL 自动生成二维码
- **📊 分析**:获取缩短链接的详细点击分析
- **📋 链接管理**:分页列出所有缩短链接
- **🎯 速率限制意识**:在每个响应中实时跟踪配额
- **🤖 自然语言**:为 AI 代理的实际工作方式而构建
- **🔗 自定义域名**:使用您自己的域名创建品牌短 URL(开发者级别)
- **✨ 自定义短语**:使用自定义短语创建易记的短 URL(开发者级别)
## 🚀 快速开始
### 选项 1:Claude 桌面扩展(最简单)
<div align="center">
<a href="https://github.com/specstoryai/tnydev-mcp/releases/latest/download/tnydev-mcp.dxt">
<img src="https://img.shields.io/badge/下载%20桌面%20扩展-→-purple?style=for-the-badge" alt="下载扩展">
</a>
</div>
#### 安装步骤:
1. **下载扩展**
- 点击上面的按钮,或
- 前往 [Releases](https://github.com/specstoryai/tnydev-mcp/releases) 下载 `tnydev-mcp.dxt`
2. **在 Claude Desktop 中安装**
- **方法 1**:将 `.dxt` 文件拖放到 Claude Desktop 中
- **方法 2**:在 Claude Desktop 中,前往 设置 → 扩展 → 安装扩展 → 选择 `.dxt` 文件
3. **配置您的 API 密钥**
- 安装后,点击扩展设置
- 输入您的 tny.dev API 密钥(可在 [tny.dev/account](https://www.tny.dev/account) 获取)
- 可选地添加您的域名 ID 以支持自定义域
4. **开始使用**
- 这些工具现在可以在您的对话中使用
- 尝试: "为我缩短这个 URL: https://example.com"
### 选项 2:npm 包(针对开发者)
```bash
```
# 在您的 MCP 客户端配置中,使用:
npx -y @specstory/tnydev-mcp
```
### 选项 3:本地安装
1. 从您的 [账户设置](https://www.tny.dev/account) 获取一个 tny.dev API 密钥
2. 克隆此仓库并导航到 `mcp-server`
3. 运行:`npm install && npm run build`
4. 设置您的 API 密钥:`echo "TNY_DEV_API_KEY=your_key_here" > .env`
5. 配置您的 MCP 客户端(请参见下面的 [安装](#installation))
6. 开始在您的 AI 助手中使用这些工具!
## 📋 前提条件
### 对于桌面扩展
- Claude Desktop v0.7.0 或更高版本
- 一个具有 API 访问权限的 tny.dev 账户
### 对于 npm/手动安装
- Node.js 18 或更高版本
- 一个具有 API 访问权限的 tny.dev 账户(推荐开发者级别)
- 一个兼容 MCP 的客户端(Claude Desktop、Claude Code、Cursor 或 VS Code)
## 🔑 开始使用 tny.dev
### 1. 获取您的 API 密钥(30 秒)
访问 [tny.dev](https://www.tny.dev) → 注册 → [账户设置](https://www.tny.dev/account) → 创建 API 密钥
### 2. 选择您的计划
| 计划 | 价格 | 速率限制 | 最适合 |
|------|-------|------------|----------|
| **免费** | $0 | 50/小时 | 测试和个人项目 |
| **开发者** | $9/月 | 500/小时 | AI代理和自动化 |
### 3. 开发者计划福利
- ✅ **10倍请求量** - 处理突发的AI流量
- ✅ **自定义域名** - 使用您自己的品牌URL
- ✅ **自定义短链接** - 创建易记的短链接
- ✅ **批量操作** - 一次处理多达100个URL
- ✅ **Webhook** - 实时事件通知
- ✅ **额外API密钥** - 为不同环境提供独立密钥
## 🌐 自定义域名(开发者级别)
要在 MCP 服务器上使用自定义域名:
1. **添加自定义域名**:在您的 tny.dev 账户中,导航到域名部分并添加您的自定义域名
2. **验证域名**:完成 DNS 验证过程
3. **获取域名 ID**:一旦验证通过,复制您的域名 ID(格式:`your_domain_id_here`)
4. **配置 MCP 服务器**:可以选择:
- 设置 `TNY_DEV_DEFAULT_DOMAIN_ID` 环境变量作为全局默认值
- 在创建短网址时传递 `domainId` 参数
- 工具参数优先于环境变量
## 📦 安装
### 本地设置
1. 克隆或下载此代码库
2. 进入 `mcp-server` 目录:
```bash
cd mcp-server
```
3. 安装依赖:
```bash
npm install
```
4. 构建 TypeScript 代码:
```bash
npm run build
```
5. 创建你的环境文件:
```bash
cp .env.example .env
```
6. 编辑 `.env` 并添加你的 tny.dev API 密钥:
```
TNY_DEV_API_KEY=your_api_key_here
# 可选:用于自定义域名支持(开发者级别)
TNY_DEV_DEFAULT_DOMAIN_ID=your_domain_id_here
```
## 🔧 安装方法
### 🚀 快速安装
<div align="center">
<table>
<tr>
<td align="center" width="25%">
<a href="https://github.com/specstoryai/tnydev-mcp/releases/latest/download/tnydev-mcp.dxt">
<img src="https://img.shields.io/badge/Claude-Desktop-7c3aed?style=for-the-badge&logo=anthropic&logoColor=white" alt="Claude Desktop">
</a>
<br>
<sub><b>Claude Desktop</b></sub>
<br>
<sub>下载 .dxt 扩展</sub>
</td>
<td align="center" width="25%">
<a href="https://cursor.com/install-mcp?name=tny-dev&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40specstory%2Ftnydev-mcp%22%5D%2C%22env%22%3A%7B%22TNY_DEV_API_KEY%22%3A%22your_api_key_here%22%7D%7D">
<img src="https://img.shields.io/badge/Cursor-IDE-00C4B3?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDJMMyA3VjE3TDEyIDIyTDIxIDE3VjdMMTIgMloiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPg==&logoColor=white" alt="Cursor">
</a>
<br>
<sub><b>Cursor</b></sub>
<br>
<sub>一键安装</sub>
</td>
<td align="center" width="25%">
<a href="https://vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%7B%22name%22%3A%22tny-dev%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40specstory%2Ftnydev-mcp%22%5D%2C%22env%22%3A%7B%22TNY_DEV_API_KEY%22%3A%22your_api_key_here%22%7D%7D">
<img src="https://img.shields.io/badge/VS_Code-Editor-0078d7?style=for-the-badge&logo=visual-studio-code&logoColor=white" alt="VS Code">
</a>
<br>
<sub><b>VS Code</b></sub>
<br>
<sub>快速设置</sub>
</td>
<td align="center" width="25%">
<a href="https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%7B%22name%22%3A%22tny-dev%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40specstory%2Ftnydev-mcp%22%5D%2C%22env%22%3A%7B%22TNY_DEV_API_KEY%22%3A%22your_api_key_here%22%7D%7D">
<img src="https://img.shields.io/badge/VS_Code-Insiders-1ba672?style=for-the-badge&logo=visual-studio-code&logoColor=white" alt="VS Code Insiders">
</a>
<br>
<sub><b>VS Code Insiders</b></sub>
<br>
<sub>预览版本</sub>
</td>
</tr>
</table>
<p align="center">
<sub>💡 <b>注意:</b> 对于 VS Code 和 Cursor,请记得将 <code>your_api_key_here</code> 替换为您的实际 <a href="https://www.tny.dev/account">tny.dev API 密钥</a></sub>
</p>
</div>
### 🖥️ Claude Desktop 扩展(推荐)
在 Claude Desktop 中使用 tny.dev 的最简单方法:
1. 从 [Releases](https://github.com/specstoryai/tnydev-mcp/releases) 下载最新的 `tnydev-mcp.dxt`
2. 打开 Claude Desktop
3. 将 `.dxt` 文件拖放到 Claude Desktop 中
4. 在扩展设置中配置您的 API 密钥
5. 完成!无需终端或 JSON 编辑
**优点:**
- ✅ 一键安装
- ✅ 自动更新
- ✅ 安全的 API 密钥存储
- ✅ 用户友好的配置界面
### 🛠️ 手动 MCP 配置
对于喜欢手动配置的高级用户:
<details>
<summary><b>📱 Claude Desktop (手动)</b></summary>
#### 使用 npx(推荐)
编辑您的 Claude Desktop 配置:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
#### 本地安装
```json
{
"mcpServers": {
"tny-dev": {
"command": "node",
"args": ["/absolute/path/to/tinylink/mcp-server/dist/index.js"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
**替代方案**:使用 .env 文件而不是硬编码 API 密钥:
```json
{
"mcpServers": {
"tny-dev": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/absolute/path/to/tinylink/mcp-server"
}
}
}
```
重启 Claude Desktop 以使更改生效。
</details>
<details>
<summary><b>🎯 光标</b></summary>
#### 使用 npx(推荐)
Cursor 支持多种配置方法:
**方法 1:项目特定配置**
在项目根目录下创建 `.cursor/mcp.json`:
```json
{
"mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
**方法 2:VS Code 设置**
添加到你的 `.vscode/settings.json` 或用户设置中:
```json
{
"cursor.mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
#### 本地安装
```json
{
"mcpServers": {
"tny-dev": {
"command": "node",
"args": ["/absolute/path/to/tinylink/mcp-server/dist/index.js"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
**注意:** 在进行配置更改后,请重启 Cursor。
#### 使用 npx(推荐)
将以下内容添加到您的 Windsurf 设置中:
```json
{
"mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
#### 本地安装
```json
{
"mcpServers": {
"tny-dev": {
"command": "node",
"args": ["/absolute/path/to/tinylink/mcp-server/dist/index.js"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
</details>
<details>
<summary><b>🤖 Cline (VS Code 扩展)</b></summary>
#### 使用 npx(推荐)
将以下内容添加到您的 VSCode 设置中(`.vscode/settings.json` 或用户设置):
```json
{
"cline.mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
#### 本地安装
```json
{
"cline.mcpServers": {
"tny-dev": {
"command": "node",
"args": ["/absolute/path/to/tinylink/mcp-server/dist/index.js"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
对于 Cursor,您还可以在项目根目录中创建 `.cursor/mcp.json`:
```json
{
"mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
</details>
<details>
<summary><b>💻 VS Code(与 Continue、Codeqwen 或其他 AI 扩展一起使用)</b></summary>
#### 使用 npx(推荐)
将以下内容添加到您的 VS Code 设置 (`settings.json`) 中:
```json
{
"mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
**注意:** 具体的配置键可能因扩展而异:
- Continue: `continue.mcpServers`
- Codeqwen: `codeqwen.mcpServers`
- 请查看您扩展的文档以获取正确的键
#### 本地安装
```json
{
"mcpServers": {
"tny-dev": {
"command": "node",
"args": ["/absolute/path/to/tinylink/mcp-server/dist/index.js"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
</details>
<details>
<summary><b>⚡ Zed</b></summary>
#### 使用 npx(推荐)
将以下内容添加到您的 Zed 设置中:
```json
{
"language_models": {
"mcp": {
"servers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here"
}
}
}
}
}
}
```
#### 本地安装
```json
{
"language_models": {
"mcp": {
"servers": {
"tny-dev": {
"command": "node",
"args": ["/absolute/path/to/tinylink/mcp-server/dist/index.js"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here"
}
}
}
}
}
}
```
</details>
<details>
<summary><b>🚀 Claude Code</b></summary>
#### 使用 npx(推荐)
通过 CLI 将其添加为本地作用域的服务器:
```bash
claude mcp add tny-dev -s local -e TNY_DEV_API_KEY=your_api_key_here -- npx -y @specstory/tnydev-mcp
```
或者在项目根目录创建一个 `.mcp.json` 文件:
```json
{
"mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
#### 本地安装
```bash
claude mcp add tny-dev -s local -e TNY_DEV_API_KEY=your_api_key_here -- node /absolute/path/to/tinylink/mcp-server/dist/index.js
```
#### 使用 npx(推荐)
将以下内容添加到您的 Roo Coder 设置中:
```json
{
"roo.mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
#### 本地安装
```json
{
"roo.mcpServers": {
"tny-dev": {
"command": "node",
"args": ["/absolute/path/to/tinylink/mcp-server/dist/index.js"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
</details>
<details>
<summary><b>🎨 Void</b></summary>
#### 使用 npx(推荐)
将以下内容添加到您的 Void 配置中:
```json
{
"mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
#### 本地安装
```json
{
"mcpServers": {
"tny-dev": {
"command": "node",
"args": ["/absolute/path/to/tinylink/mcp-server/dist/index.js"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
</details>
<details>
<summary><b>🛠️ 其他 MCP 客户端</b></summary>
#### 使用 npx(推荐)
大多数 MCP 客户端支持类似的配置格式:
```json
{
"mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
#### 本地安装
```json
{
"mcpServers": {
"tny-dev": {
"command": "node",
"args": ["/absolute/path/to/tinylink/mcp-server/dist/index.js"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
请查看您客户端的文档以获取特定的配置文件位置和格式。
### 🔒 安全最佳实践
**重要**:切勿将包含 API 密钥的配置文件提交到版本控制中。
**推荐的方法:**
1. **环境变量** (最安全)
```bash
export TNY_DEV_API_KEY="your_api_key_here"
export TNY_DEV_DEFAULT_DOMAIN_ID="your_domain_id_here"
```
2. **安全密钥存储**
- 使用密码管理器存储 API 密钥
- 使用系统钥匙串/凭证管理器
- 使用特定环境的 `.env` 文件(切勿提交)
3. **Git 安全**
```bash
# 添加到 .gitignore
.env
.env.local
**/claude_desktop_config.json
**/.cursor/mcp.json
.vscode/settings.json
```
4. **密钥**
- 为不同的环境使用不同的密钥
- 在你的 tny.dev 仪表板中监控密钥使用情况
## 💡 AI Agent 使用案例
查看 AI 助手如何在真实对话中自然地使用 tny.dev – 无需编码:
### 传统 API 方法与 MCP Server
<div align="center">
<table>
<tr>
<td valign="top" width="50%">
#### ❌ 传统 API 方法
```python
```
# 步骤 1:编写代码以调用 API
import requests
def shorten_url(url):
response = requests.post(
'https://www.tny.dev/api/v1/shorten',
headers={
'X-API-Key': 'tnyl_your_api_key_here',
'Content-Type': 'application/json'
},
json={'url': url}
)
return response.json()
# 第2步:手动处理每个链接
links = [...] # 你的链接列表
shortened = [shorten_url(link) for link in links]
# 第3步:格式化和组织结果
# 还需要更多代码...
```
</td>
<td valign="top" width="50%">
#### ✅ 使用 tny.dev MCP Server
```
💬 你: "我正在写一篇关于 React hooks 的博客文章。请缩短这些文档链接,并按 hook 类型进行整理。"
🤖 Claude: "我会为你缩短这些 React 文档链接,并按 hook 类型进行整理……"
[自动处理所有链接,使用 MCP]
```
**无需代码!** 只需自然对话。
### 常见的 AI 代理工作流程
#### 📊 活动分析
> "告诉我昨天的活动中哪些链接获得了最多点击"
#### ⚡ 批量处理
> “缩短本文件中的所有URL并创建目录”
#### 🛡️ 链接管理
> "更新所有活动链接以使用我们的新着陆页"
#### 🎯 智能组织
> “按类别对这些产品链接进行分组,并为每个链接创建可追踪的短网址”
## 🛠️ 可用工具
有关详细的API文档,请访问 [tny.dev API Docs](https://www.tny.dev/api-docs)。
### 1. shorten_url
创建一个支持自定义域名和短语的缩短 URL(开发者级别功能)。
**参数:**
- `url`(必需):要缩短的 URL
- `customSlug`(可选):短 URL 的自定义短语(3-50 个字符,字母数字 + 连字符/下划线) - 需要 domainId
- `domainId`(可选):自定义域名使用的域 ID - 使用 customSlug 时必需
**示例:**
```
# 基本用法
使用 shorten_url 工具为 https://example.com/very/long/url 创建一个短链接。
# 使用自定义域名和短链接
使用 shorten_url 工具为 https://example.com 创建一个短链接,使用 customSlug "my-link" 和 domainId "your_domain_id_here"。
# 仅限自定义域(随机短链接)
使用 shorten_url 工具为 https://example.com 创建一个短链接,域名ID为 "your_domain_id_here"
```
**注意:** 自定义域和短链接需要开发者级别的订阅。您可以使用 `TNY_DEV_DEFAULT_DOMAIN_ID` 环境变量配置默认域名ID。
### 2. get_link_analytics
获取缩短链接的点击分析。
**参数:**
- `slug`(必需):缩短URL的标识符
**示例:**
```
获取标识符为 "abc123" 的链接的分析数据
```
### 3. list_links
列出所有使用您的 API 密钥创建的缩短链接。
**参数:**
- `page`(可选):页码(默认值:1)
- `limit`(可选):每页链接数量(1-100,默认值:20)
**示例:**
```
Show me all my shortened links
```
## ⚡ 速率限制与定价
### 简单透明的定价
| | 免费 | 开发者 |
|---|---|---|
| **每月费用** | $0 | $9 |
| **每小时请求限制** | 50/小时 | 500/小时 |
| **有效费用** | - | $0.018/请求 |
| **与 Bitly 相比** | - | **便宜 95%** |
> 💡 **专业提示**:服务器在每个响应中显示剩余配额,以帮助您实时跟踪使用情况。
## ⚙️ 配置示例
<details>
<summary><b>基本配置</b></summary>
```json
{
"mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here" // 可选
}
}
}
}
```
</details>
<details>
<summary><b>使用自定义域名(开发者级别)</b></summary>
```json
{
"mcpServers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here",
"TNY_DEV_DEFAULT_DOMAIN_ID": "your_domain_id_here"
}
}
}
}
```
</details>
<details>
<summary><b>开发/测试配置</b></summary>
```json
{
"mcpServers": {
"tny-dev": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/tinylink/mcp-server",
"env": {
"DEBUG": "true",
"TNY_DEV_BASE_URL": "https://staging.tny.dev/api/v1" // 可选的预发布 URL
}
}
}
}
```
</details>
<details>
<summary><b>多个环境</b></summary>
```json
{
"mcpServers": {
"tny-dev-prod": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "prod_key_here"
}
},
"tny-dev-test": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "test_key_here",
"TNY_DEV_BASE_URL": "https://staging.tny.dev/api/v1"
}
}
}
}
```
</details>
## 🔨 开发
### 开发前提
- Node.js 18+
- npm 或 yarn
- TypeScript 知识
### 设置
```bash
```
# 克隆代码库
git clone https://github.com/yourusername/tinylink.git
cd tinylink/mcp-server
# 安装依赖
npm install
# 复制环境模板
cp .env.example .env
# 将您的 API 密钥添加到 .env
echo "TNY_DEV_API_KEY=your_key_here" >> .env
# 构建项目
npm run build
```
### 开发命令
```bash
```
# 在开发模式下运行并自动重载
npm run dev
# 构建项目
npm run build
# 运行代码检查
npm run lint
# 运行类型检查
npm run typecheck
# 启动构建的服务器
npm start
```
### 测试服务器
```bash
```
# 手动测试并输出调试信息
DEBUG=true TNY_DEV_API_KEY=your_key node dist/index.js
# 使用自定义基础 URL 进行测试
TNY_DEV_BASE_URL=https://staging.tny.dev/api/v1 npm start
```
### 项目结构
```
mcp-server/
├── src/
│ ├── index.ts # 主要服务器入口点
│ ├── client.ts # API 客户端实现
│ ├── types.ts # TypeScript 类型定义
│ └── handlers/ # 工具处理程序
│ ├── shorten.ts # URL 缩短处理程序
│ ├── analytics.ts # 分析处理程序
│ └── links.ts # 链接列表处理程序
├── dist/ # 编译后的 JavaScript(生成)
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
├── .env.example # 环境模板
└── README.md # 本文件
```
## 🐛 故障排除
<details>
<summary><b>所有客户端的常见问题</b></summary>
### 客户端未显示服务器
- ✅ 确保配置文件是有效的 JSON(检查是否有多余的逗号)
- ✅ 验证服务器的绝对路径是否正确
- ✅ 检查 Node.js 是否已安装并在系统 PATH 中
- ✅ 在配置更改后重启客户端应用程序
- ✅ 启用调试模式:在环境中设置 `DEBUG=true`
### API 密钥问题
- ✅ 验证您的 API 密钥是否在配置或 `.env` 文件中正确设置
- ✅ 检查您的 API 密钥在 [Account](https://www.tny.dev/account) 设置中是否处于激活状态
- ✅ 确保 API 密钥周围没有多余的空格或引号
- ✅ 手动测试服务器:`TNY_DEV_API_KEY=your_key node dist/index.js`
### 连接错误
- ✅ 运行 `npm run build` 以确保服务器已编译
- ✅ 检查客户端开发者控制台中的错误消息
- ✅ 尝试单独运行服务器以查看错误输出
- ✅ 验证 Node.js 版本为 18 或更高: `node --version`
### 速率限制错误
- ℹ️ 服务器在每个响应中显示剩余配额
- ℹ️ 免费套餐:每小时50次请求,开发者套餐:每小时500次请求
- ℹ️ 速率限制从第一次请求开始每小时重置
- ℹ️ 考虑在 [tny.dev Plans](https://www.tny.dev/plans) 升级
</details>
<details>
<summary><b>Claude Desktop 特定</b></summary>
### 配置文件位置
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
### 常见问题
- **服务器未加载**:检查 Console.app (macOS) 或 Event Viewer (Windows) 中的 Claude Desktop 日志
- **权限被拒绝**:确保 Claude Desktop 有权限执行 Node.js
- **路径问题**:使用绝对路径,避免在路径中使用 `~` 或环境变量
</details>
<details>
<summary><b>光标特定</b></summary>
### 配置优先级
1. `.cursor/mcp.json`(项目特定)
2. VS Code 用户设置
3. VS Code 工作区设置
### 常见问题
- **多个配置**:检查所有可能的配置位置
- **扩展冲突**:暂时禁用其他MCP扩展
- **需要重载**:使用命令面板 > "Developer: Reload Window"
</details>
<details>
<summary><b>VS Code扩展特定</b></summary>
### 查找正确的配置键
- Continue: `continue.mcpServers`
- Codeqwen: `codeqwen.mcpServers`
- Cline: `cline.mcpServers`
- 请查看扩展文档以获取确切的键
### 常见问题
- **设置同步**:如果遇到问题,请暂时禁用设置同步
- **扩展更新**:确保扩展是最新的
- **工作区信任**:确保工作区是受信任的
</details>
<details>
<summary><b>平台特定问题</b></summary>
### macOS/Linux
- ✅ 确保执行权限:`chmod +x dist/index.js`
- ✅ 检查 `.env` 文件权限:`chmod 600 .env`
- ✅ 在配置中使用完整路径,而不是 `~/`
### Windows
- ✅ 使用正斜杠或双反斜杠:`C:/path/to/server` 或 `C:\\path\\to\\server`
- ✅ 如果权限问题仍然存在,请以管理员身份运行
- ✅ 确保 Node.js 在系统 PATH 中,而不仅仅是在用户 PATH 中
- ✅ 如果使用 WSL,请在配置中使用 Windows 路径,而不是 WSL 路径
### Docker/开发容器
- ✅ 将MCP服务器目录挂载为卷
- ✅ 确保在容器中安装Node.js
- ✅ 在配置中使用容器路径
## 📄 许可证
MIT
## 📦 下载与发布
### 桌面扩展 (.dxt)
- **最新版本**: [下载 tnydev-mcp.dxt](https://github.com/specstoryai/tnydev-mcp/releases/latest/download/tnydev-mcp.dxt)
- **所有版本**: [GitHub 发布](https://github.com/specstoryai/tnydev-mcp/releases)
- **自动更新**: 扩展在 Claude Desktop 中自动更新
### npm 包
- **包**: [@specstory/tnydev-mcp](https://www.npmjs.com/package/@specstory/tnydev-mcp)
- **安装**: `npm install -g @specstory/tnydev-mcp`
- **直接使用**: `npx @specstory/tnydev-mcp`
## 📚 资源
### 文档
- 📖 [tny.dev API 文档](https://www.tny.dev/api-docs)
- 📖 [MCP 协议规范](https://modelcontextprotocol.io)
- 📖 [tny.dev 开发者门户](https://www.tny.dev/developers)
### 社区
- 💬 [GitHub 讨论区](https://github.com/specstoryai/tnydev-mcp/discussions)
- 🐛 [报告问题](https://github.com/specstoryai/tnydev-mcp/issues)
- 🌟 [功能请求](https://github.com/specstoryai/tnydev-mcp/issues/new?labels=enhancement)
### 相关项目
- [tny.dev Web App](https://www.tny.dev)
- [tny.dev API 客户端库](https://www.tny.dev/developers/libraries)
- [MCP Servers 目录](https://github.com/modelcontextprotocol/servers)
## 💬 支持
### 获取帮助
| 问题类型 | 获取帮助的地方 |
|----------|-----------------|
| 🐛 MCP Server 问题 | [GitHub Issues](https://github.com/specstoryai/tnydev-mcp/issues) |
| 🔑 API/账户问题 | [tny.dev 支持](https://www.tny.dev/support) |
| 📱 Claude Desktop | [Claude 帮助中心](https://claude.ai/help) |
| 💻 客户特定问题 | 查看客户的文档 |
### 快速链接
- **状态页面**: [status.tny.dev](https://status.tny.dev)
- **API 状态**: 查看 [tny.dev 状态页面](https://status.tny.dev)
- **账户仪表板**: [tny.dev/account](https://www.tny.dev/account)
## 🚀 准备好进行以代理为先的开发了吗?
<div align="center">
<h3>通过我们的第一方 MCP Server 实现原生 AI 集成</h3>
<p>每月仅需 $9,提供 500 次请求/小时 - <strong>比 Bitly 便宜 95%</strong></p>
<a href="https://www.tny.dev/developers">
<img src="https://img.shields.io/badge/Get%20Your%20API%20Key-→-purple?style=for-the-badge" alt="获取您的 API 密钥">
</a>
</div>
---
## 🤝 贡献
我们欢迎贡献!请查看我们的 [贡献指南](CONTRIBUTING.md) 以获取详细信息。
### 开发工作流程
1. Fork 代码库
2. 创建一个功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交你的更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开一个 Pull Request
## 🙏 感谢
- 使用 [Model Context Protocol SDK](https://github.com/modelcontextprotocol/sdk) 构建
- 由 [tny.dev](https://www.tny.dev) 提供支持 - 为 AI 代理构建的 API 优先链接缩短器
- 兼容 [Claude](https://claude.ai) 和其他 MCP 客户端
连接信息
猜你喜欢
暂无推荐服务器