specstoryai/tnydev-mcp
If you are the rightful owner of tnydev-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The tny.dev MCP Server is an API-first link shortener designed specifically for AI agents, offering native integration with AI assistants like Claude and Cursor.
shorten_url
Create a shortened URL with support for custom domains and slugs.
get_link_analytics
Get click analytics for a shortened link.
list_links
List all shortened links created with your API key.
MCP Server
The API-first link shortener built for AI agents
First-party MCP server & DXT for Claude, Cursor, and other AI assistants
š Why tny.dev for AI Agents?
Optimized for bursty AI traffic. Right when your agents need them.
Built to handle spikes when agents process batches.
š¤ Agent-First DesignOfficial MCP server for Claude, Cursor, and other AI assistants. Link shortening with Natural Language that just works. |
š° 200x More Economical500 requests/hour for just $9/month. Perfect for AI workflows that process links in bursts. |
ā±ļø Generous Rate Limits500 requests per hour means you can scale naturally with your automation needs without hitting quotas. |
šÆ How Link Shorteners Compare
Feature | tny.dev | Bitly | Rebrandly | Short.io | TinyURL |
---|---|---|---|---|---|
First-party MCP Server | ā Native | ā ļø Third-party | ā Native | ā None | ā ļø Third-party |
Claude Desktop Extension | ā Native .dxt | ā None | ā None | ā None | ā None |
Monthly Cost | ā $9 | ā $199 | ā ļø $29-35 | ā ļø $19 | ā $9.99 |
Hourly Rate Limit | ā 500/hour | ā ļø ~69/hour* | ā ļø ~35/hour* | ā ~1.4/hour* | ā ļø ~14/hour* |
Bulk Operations | ā 100/request | ā Not supported | ā 25/request | ā 1,000/request | ā Not documented |
* Effective hourly rate calculated from monthly quotas divided by 720 hours
šØ Other Features
- š± QR Codes: Automatic QR code generation for all shortened URLs
- š Analytics: Get detailed click analytics for your shortened links
- š Link Management: List all your shortened links with pagination
- šÆ Rate Limit Awareness: Real-time quota tracking in every response
- š¤ Natural Language: Built for how AI agents actually work
- š Custom Domains: Use your own domain for branded short URLs (Developer tier)
- ⨠Custom Slugs: Create memorable short URLs with custom slugs (Developer tier)
š Quick Start
Option 1: Claude Desktop Extension (Easiest)
Installation Steps:
-
Download the Extension
- Click the button above, or
- Go to Releases and download
tnydev-mcp.dxt
-
Install in Claude Desktop
- Method 1: Drag and drop the
.dxt
file into Claude Desktop - Method 2: In Claude Desktop, go to Settings ā Extensions ā Install Extension ā Select the
.dxt
file
- Method 1: Drag and drop the
-
Configure Your API Key
- After installation, click on the extension settings
- Enter your tny.dev API key (get one at tny.dev/account)
- Optionally add your domain ID for custom domains
-
Start Using
- The tools are now available in your conversation
- Try: "Shorten this URL for me: https://example.com"
Option 2: npm Package (For Developers)
# In your MCP client configuration, use:
npx -y @specstory/tnydev-mcp
Option 3: Local Installation
- Get a tny.dev API key from your account settings
- Clone this repository and navigate to
mcp-server
- Run:
npm install && npm run build
- Set your API key:
echo "TNY_DEV_API_KEY=your_key_here" > .env
- Configure your MCP client (see Installation below)
- Start using the tools in your AI assistant!
š Prerequisites
For Desktop Extension
- Claude Desktop v0.7.0 or higher
- A tny.dev account with API access
For npm/Manual Installation
- Node.js 18 or higher
- A tny.dev account with API access (developer tier recommended)
- An MCP-compatible client (Claude Desktop, Claude Code, Cursor, or VS Code)
š Getting Started with tny.dev
1. Get Your API Key (30 seconds)
Visit tny.dev ā Sign up ā Account Settings ā Create API Key
2. Choose Your Plan
Plan | Price | Rate Limit | Best For |
---|---|---|---|
Free | $0 | 50/hour | Testing & personal projects |
Developer | $9/mo | 500/hour | AI agents & automation |
3. Developer Plan Benefits
- ā 10x more requests - Handle bursty AI traffic
- ā Custom domains - Use your own branded URLs
- ā Custom slugs - Create memorable short links
- ā Bulk operations - Process up to 100 URLs at once
- ā Webhooks - Real-time event notifications
- ā Extra API keys - Separate keys for different environments
š Custom Domains (Developer Tier)
To use custom domains with the MCP server:
- Add a Custom Domain: In your tny.dev account, navigate to the Domains section and add your custom domain
- Verify Domain: Complete the DNS verification process
- Get Domain ID: Once verified, copy your domain ID (format:
your_domain_id_here
) - Configure MCP Server: Either:
- Set
TNY_DEV_DEFAULT_DOMAIN_ID
environment variable for global default - Pass
domainId
parameter when creating short URLs - Tool parameter takes precedence over environment variable
- Set
š¦ Installation
Local Setup
- Clone or download this repository
- Navigate to the
mcp-server
directory:cd mcp-server
- Install dependencies:
npm install
- Build the TypeScript code:
npm run build
- Create your environment file:
cp .env.example .env
- Edit
.env
and add your tny.dev API key:TNY_DEV_API_KEY=your_api_key_here # Optional: For custom domain support (Developer tier) TNY_DEV_DEFAULT_DOMAIN_ID=your_domain_id_here
š§ Installation Methods
š Quick Install
Claude Desktop Download .dxt extension |
Cursor One-click install |
VS Code Quick setup |
VS Code Insiders Preview build |
š” Note: For VS Code and Cursor, remember to replace your_api_key_here
with your actual tny.dev API key
š„ļø Claude Desktop Extension (Recommended)
The easiest way to use tny.dev in Claude Desktop:
- Download the latest
tnydev-mcp.dxt
from Releases - Open Claude Desktop
- Drag and drop the
.dxt
file into Claude Desktop - Configure your API key in the extension settings
- Done! No terminal or JSON editing required
Benefits:
- ā One-click installation
- ā Automatic updates
- ā Secure API key storage
- ā User-friendly configuration UI
š ļø Manual MCP Configuration
For advanced users who prefer manual configuration:
š± Claude Desktop (Manual)
Using npx (Recommended)
Edit your Claude Desktop configuration:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.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" // Optional
}
}
}
}
Local installation
{
"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" // Optional
}
}
}
}
Alternative: Use .env file instead of hardcoding the API key:
{
"mcpServers": {
"tny-dev": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/absolute/path/to/tinylink/mcp-server"
}
}
}
Restart Claude Desktop for changes to take effect.
šÆ Cursor
Using npx (Recommended)
Cursor supports multiple configuration methods:
Method 1: Project-specific configuration
Create .cursor/mcp.json
in your project root:
{
"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" // Optional
}
}
}
}
Method 2: VS Code settings
Add to your .vscode/settings.json
or User Settings:
{
"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" // Optional
}
}
}
}
Local installation
{
"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" // Optional
}
}
}
}
Note: Restart Cursor after making configuration changes.
š Windsurf
Using npx (Recommended)
Add to your Windsurf settings:
{
"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" // Optional
}
}
}
}
Local installation
{
"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" // Optional
}
}
}
}
š¤ Cline (VS Code Extension)
Using npx (Recommended)
Add to your VSCode settings (.vscode/settings.json
or User Settings):
{
"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" // Optional
}
}
}
}
Local installation
{
"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" // Optional
}
}
}
}
For Cursor specifically, you can also create .cursor/mcp.json
in your project root:
{
"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" // Optional
}
}
}
}
š» VS Code (with Continue, Codeqwen, or other AI extensions)
Using npx (Recommended)
Add to your VS Code settings (settings.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" // Optional
}
}
}
}
Note: The exact configuration key may vary by extension:
- Continue:
continue.mcpServers
- Codeqwen:
codeqwen.mcpServers
- Check your extension's documentation for the correct key
Local installation
{
"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" // Optional
}
}
}
}
ā” Zed
Using npx (Recommended)
Add to your Zed settings:
{
"language_models": {
"mcp": {
"servers": {
"tny-dev": {
"command": "npx",
"args": ["-y", "@specstory/tnydev-mcp"],
"env": {
"TNY_DEV_API_KEY": "your_api_key_here"
}
}
}
}
}
}
Local installation
{
"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"
}
}
}
}
}
}
š Claude Code
Using npx (Recommended)
Add as a locally-scoped server using the CLI:
claude mcp add tny-dev -s local -e TNY_DEV_API_KEY=your_api_key_here -- npx -y @specstory/tnydev-mcp
Or create a .mcp.json
file in your project root:
{
"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" // Optional
}
}
}
}
Local installation
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
š¤ Roo Coder
Using npx (Recommended)
Add to your Roo Coder settings:
{
"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" // Optional
}
}
}
}
Local installation
{
"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" // Optional
}
}
}
}
šØ Void
Using npx (Recommended)
Add to your Void configuration:
{
"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" // Optional
}
}
}
}
Local installation
{
"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" // Optional
}
}
}
}
š ļø Other MCP Clients
Using npx (Recommended)
Most MCP clients support a similar configuration format:
{
"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" // Optional
}
}
}
}
Local installation
{
"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" // Optional
}
}
}
}
Check your client's documentation for the specific configuration file location and format.
š Security Best Practices
Important: Never commit configuration files containing API keys to version control.
Recommended approaches:
-
Environment Variables (Most Secure)
export TNY_DEV_API_KEY="your_api_key_here" export TNY_DEV_DEFAULT_DOMAIN_ID="your_domain_id_here"
-
Secure Key Storage
- Use a password manager for API keys
- Use system keychain/credential manager
- Use environment-specific
.env
files (never commit)
-
Git Security
# Add to .gitignore .env .env.local **/claude_desktop_config.json **/.cursor/mcp.json .vscode/settings.json
-
Keys
- Use different keys for different environments
- Monitor key usage in your tny.dev dashboard
š” AI Agent Use Cases
See how AI assistants naturally use tny.dev in real conversations ā no code required:
Traditional API Approach vs. MCP Server
ā Traditional API Approach
|
ā With tny.dev MCP Server
No code required! Just natural conversation. |
Common AI Agent Workflows
š Campaign Analytics
"Show me which links from yesterday's campaign got the most clicks"
ā” Bulk Processing
"Shorten all the URLs in this documentation and create a table of contents"
š”ļø Link Management
"Update all campaign links to use our new landing page"
šÆ Smart Organization
"Group these product links by category and create trackable short URLs for each"
š ļø Available Tools
For detailed API documentation, visit the tny.dev API Docs.
1. shorten_url
Create a shortened URL with support for custom domains and slugs (Developer tier feature).
Parameters:
url
(required): The URL to shortencustomSlug
(optional): Custom slug for the short URL (3-50 chars, alphanumeric + hyphens/underscores) - requires domainIddomainId
(optional): Domain ID for custom domain usage - required when using customSlug
Examples:
# Basic usage
Use the shorten_url tool to create a short link for https://example.com/very/long/url
# With custom domain and slug
Use the shorten_url tool to create a short link for https://example.com with customSlug "my-link" and domainId "your_domain_id_here"
# With custom domain only (random slug)
Use the shorten_url tool to create a short link for https://example.com with domainId "your_domain_id_here"
Note: Custom domains and slugs require a Developer tier subscription. You can configure a default domain ID using the TNY_DEV_DEFAULT_DOMAIN_ID
environment variable.
2. get_link_analytics
Get click analytics for a shortened link.
Parameters:
slug
(required): The slug of the shortened URL
Example:
Get analytics for the link with slug "abc123"
3. list_links
List all shortened links created with your API key.
Parameters:
page
(optional): Page number (default: 1)limit
(optional): Number of links per page (1-100, default: 20)
Example:
Show me all my shortened links
ā” Rate Limits & Pricing
Simple, Transparent Pricing
Free | Developer | |
---|---|---|
Monthly Cost | $0 | $9 |
Hourly Rate Limit | 50/hour | 500/hour |
Effective Cost | - | $0.018/request |
Compared to Bitly | - | 95% cheaper |
š” Pro Tip: The server displays remaining quota in each response to help you track usage in real-time.
āļø Configuration Examples
Basic Configuration
{
"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" // Optional
}
}
}
}
With Custom Domain (Developer Tier)
{
"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"
}
}
}
}
Development/Testing Configuration
{
"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" // Optional staging URL
}
}
}
}
Multiple Environments
{
"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"
}
}
}
}
šØ Development
Prerequisites for Development
- Node.js 18+
- npm or yarn
- TypeScript knowledge
Setup
# Clone the repository
git clone https://github.com/yourusername/tinylink.git
cd tinylink/mcp-server
# Install dependencies
npm install
# Copy environment template
cp .env.example .env
# Add your API key to .env
echo "TNY_DEV_API_KEY=your_key_here" >> .env
# Build the project
npm run build
Development Commands
# Run in development mode with auto-reload
npm run dev
# Build the project
npm run build
# Run linting
npm run lint
# Run type checking
npm run typecheck
# Start the built server
npm start
Testing the Server
# Test manually with debug output
DEBUG=true TNY_DEV_API_KEY=your_key node dist/index.js
# Test with a custom base URL
TNY_DEV_BASE_URL=https://staging.tny.dev/api/v1 npm start
Project Structure
mcp-server/
āāā src/
ā āāā index.ts # Main server entry point
ā āāā client.ts # API client implementation
ā āāā types.ts # TypeScript type definitions
ā āāā handlers/ # Tool handlers
ā āāā shorten.ts # URL shortening handler
ā āāā analytics.ts # Analytics handler
ā āāā links.ts # Links listing handler
āāā dist/ # Compiled JavaScript (generated)
āāā package.json # Project configuration
āāā tsconfig.json # TypeScript configuration
āāā .env.example # Environment template
āāā README.md # This file
š Troubleshooting
Common Issues for All Clients
Server Not Appearing in Client
- ā Ensure the configuration file is valid JSON (check for trailing commas)
- ā Verify the absolute path to the server is correct
- ā Check that Node.js is installed and in your system PATH
- ā Restart your client application after configuration changes
- ā
Enable debug mode:
DEBUG=true
in environment
API Key Issues
- ā
Verify your API key is correctly set in the configuration or
.env
file - ā Check that your API key is active in your Account settings
- ā Ensure there are no extra spaces or quotes around the API key
- ā
Test the server manually:
TNY_DEV_API_KEY=your_key node dist/index.js
Connection Errors
- ā
Run
npm run build
to ensure the server is compiled - ā Check for error messages in the client's developer console
- ā Try running the server standalone to see error output
- ā
Verify Node.js version is 18 or higher:
node --version
Rate Limit Errors
- ā¹ļø The server displays remaining quota in each response
- ā¹ļø Free tier: 50 requests/hour, Developer tier: 500 requests/hour
- ā¹ļø Rate limits reset every hour from first request
- ā¹ļø Consider upgrading at tny.dev Plans
Claude Desktop Specific
Configuration File Location
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
Common Issues
- Server not loading: Check Claude Desktop logs in Console.app (macOS) or Event Viewer (Windows)
- Permission denied: Ensure Claude Desktop has permission to execute Node.js
- Path issues: Use absolute paths, avoid
~
or environment variables in paths
Cursor Specific
Configuration Priority
.cursor/mcp.json
(project-specific)- VS Code User Settings
- VS Code Workspace Settings
Common Issues
- Multiple configs: Check all possible config locations
- Extension conflicts: Disable other MCP extensions temporarily
- Reload required: Use Command Palette > "Developer: Reload Window"
VS Code Extensions Specific
Finding the Right Config Key
- Continue:
continue.mcpServers
- Codeqwen:
codeqwen.mcpServers
- Cline:
cline.mcpServers
- Check extension docs for exact key
Common Issues
- Settings sync: Disable settings sync temporarily if having issues
- Extension updates: Ensure extensions are up to date
- Workspace trust: Ensure workspace is trusted
Platform-Specific Issues
macOS/Linux
- ā
Ensure execute permissions:
chmod +x dist/index.js
- ā
Check
.env
file permissions:chmod 600 .env
- ā
Use full paths, not
~/
in configurations
Windows
- ā
Use forward slashes or double backslashes:
C:/path/to/server
orC:\\path\\to\\server
- ā Run as Administrator if permission issues persist
- ā Ensure Node.js is in system PATH, not just user PATH
- ā If using WSL, use Windows paths in config, not WSL paths
Docker/Dev Containers
- ā Mount the MCP server directory as a volume
- ā Ensure Node.js is installed in the container
- ā Use container paths in configuration
š License
MIT
š¦ Downloads & Releases
Desktop Extension (.dxt)
- Latest Release: Download tnydev-mcp.dxt
- All Releases: GitHub Releases
- Auto-Updates: Extensions update automatically in Claude Desktop
npm Package
- Package: @specstory/tnydev-mcp
- Install:
npm install -g @specstory/tnydev-mcp
- Direct Use:
npx @specstory/tnydev-mcp
š Resources
Documentation
Community
- š¬ GitHub Discussions
- š Report Issues
- š Feature Requests
Related Projects
š¬ Support
Getting Help
Issue Type | Where to Get Help |
---|---|
š MCP Server Issues | GitHub Issues |
š API/Account Issues | tny.dev Support |
š± Claude Desktop | Claude Help Center |
š» Client-Specific | Check client's documentation |
Quick Links
- Status Page: status.tny.dev
- API Status: Check the tny.dev Status Page
- Account Dashboard: tny.dev/account
š Ready for Agent-First Development?
Get native AI integration with our first-party MCP server
Just $9/month for 500 requests/hour - 95% cheaper than Bitly
š¤ Contributing
We welcome contributions! Please see our for details.
Development Workflow
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
š Acknowledgments
- Built with Model Context Protocol SDK
- Powered by tny.dev - The API-first link shortener built for AI agents
- Compatible with Claude and other MCP clients