Skip to main content
Glama
Arnonfr
by Arnonfr
README.md
# ๐Ÿ” Behance MCP Server

[![MCP](https://img.shields.io/badge/MCP-Model%20Context%20Protocol-blue)](https://modelcontextprotocol.io/)
[![Node.js](https://img.shields.io/badge/Node.js-18%2B-green)](https://nodejs.org/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.0%2B-blue)](https://www.typescriptlang.org/)
[![License](https://img.shields.io/badge/License-MIT-yellow)](LICENSE)
[![npm](https://img.shields.io/npm/v/behance-mcp-server)](https://www.npmjs.com/package/behance-mcp-server)

A powerful [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for scraping Behance.net. Extract projects, user profiles, images, and job listings from Behance's creative community without any API keys or subscriptions.

## โœจ Features

- ๐Ÿ” **Search Projects** - Find creative projects by keyword with full metadata (title, creator, stats, fields)
- ๐Ÿ‘ค **User Profiles** - Extract designer and agency profile information  
- ๐Ÿ–ผ๏ธ **Images** - Search and collect images from Behance portfolios
- ๐Ÿ’ผ **Jobs** - Get creative job listings with filters (location, category, remote)
- ๐Ÿ“Š **Detailed Data** - Comprehensive information including descriptions, tools, tags, and media
- ๐Ÿ”’ **No API Key Required** - Uses web scraping, no Behance API key needed
- ๐Ÿ’ฐ **Completely Free** - No monthly fees or usage limits (unlike Apify's $25/month)

## ๐Ÿš€ Quick Start

### Prerequisites

- [Node.js](https://nodejs.org/) 18 or higher
- npm (comes with Node.js)

### Installation

```bash
# Clone the repository
git clone https://github.com/Arnonfr/behance-mcp-server.git
cd behance-mcp-server

# Install dependencies
npm install

# Build the TypeScript code
npm run build
```

### Alternative: Install via npx (Coming Soon)

```bash
npx behance-mcp-server
```

## โš™๏ธ Configuration

### Claude Desktop

Add to your Claude Desktop configuration file:

**macOS:**
```bash
~/Library/Application Support/Claude/claude_desktop_config.json
```

**Windows:**
```bash
%APPDATA%/Claude/claude_desktop_config.json
```

**Linux:**
```bash
~/.config/Claude/claude_desktop_config.json
```

**Configuration:**
```json
{
  "mcpServers": {
    "behance": {
      "command": "node",
      "args": ["/absolute/path/to/behance-mcp-server/dist/index.js"]
    }
  }
}
```

### Cursor

Add to your Cursor MCP settings (Settings โ†’ Features โ†’ MCP):

```json
{
  "mcpServers": {
    "behance": {
      "command": "node",
      "args": ["/absolute/path/to/behance-mcp-server/dist/index.js"]
    }
  }
}
```

### VS Code / GitHub Copilot

```json
{
  "mcpServers": {
    "behance": {
      "command": "node",
      "args": ["/absolute/path/to/behance-mcp-server/dist/index.js"]
    }
  }
}
```

### Kimi Code CLI

Add to your Kimi MCP configuration (`~/.kimi/mcp.json`):

```json
{
  "mcpServers": {
    "behance": {
      "command": "node",
      "args": ["/absolute/path/to/behance-mcp-server/dist/index.js"]
    }
  }
}
```

## ๐Ÿ› ๏ธ Available Tools

### 1. `search_behance_projects`

Search for creative projects on Behance.

**Parameters:**
- `keyword` (string, required): Search term (e.g., "branding", "UI design")
- `maxItems` (number, optional): Maximum results (default: 50, max: 200)

**Returns:**
- Project ID, title, URL
- Creator name and profile URL
- Thumbnail image
- Stats: views, appreciations, comments
- Creative fields/categories

**Example:**
```json
{
  "keyword": "logo design",
  "maxItems": 10
}
```

### 2. `get_behance_project_details`

Get detailed information about a specific project.

**Parameters:**
- `projectUrl` (string, required): Full Behance project URL

**Returns:**
- Full description
- All project images
- Tags
- Tools used

**Example:**
```json
{
  "projectUrl": "https://www.behance.net/gallery/123456789/Project-Name"
}
```

### 3. `search_behance_profiles`

Search for user profiles on Behance.

**Parameters:**
- `keyword` (string, required): Search term (e.g., "designer", "illustrator")
- `maxItems` (number, optional): Maximum results (default: 50, max: 200)

**Returns:**
- Username and display name
- Avatar image
- Location
- Followers, appreciations, views
- Project count
- Hiring status

**Example:**
```json
{
  "keyword": "UI designer London",
  "maxItems": 20
}
```

### 4. `get_behance_profile_details`

Get detailed profile information.

**Parameters:**
- `profileUrl` (string, required): Full Behance profile URL

**Returns:**
- Bio
- Company and occupation
- Social media links
- Complete statistics

**Example:**
```json
{
  "profileUrl": "https://www.behance.net/username"
}
```

### 5. `search_behance_images`

Search for images on Behance.

**Parameters:**
- `keyword` (string, required): Search term (e.g., "logo", "3d render")
- `maxItems` (number, optional): Maximum results (default: 50, max: 200)

**Returns:**
- Image URLs with dimensions
- Associated project info
- Creator details

**Example:**
```json
{
  "keyword": "3d render",
  "maxItems": 30
}
```

### 6. `get_behance_jobs`

Get job listings from Behance.

**Parameters:**
- `maxItems` (number, optional): Maximum results (default: 50, max: 100)
- `location` (string, optional): Filter by location (e.g., "New York", "Remote")
- `category` (string, optional): Filter by category (e.g., "Graphic Design")

**Returns:**
- Job title and company
- Location and job type
- Posted date
- Required skills
- Remote availability

**Example:**
```json
{
  "maxItems": 20,
  "location": "Remote",
  "category": "UI/UX"
}
```

### 7. `get_behance_job_details`

Get detailed job listing information.

**Parameters:**
- `jobUrl` (string, required): Full Behance job URL

**Returns:**
- Full job description
- Salary information (if available)

## ๐Ÿ’ก Usage Examples

### Search for branding projects:
```
Search for "branding" projects on Behance, limit to 20 results
```

### Find designers in a location:
```
Search for UI designer profiles in London
```

### Get job listings:
```
Get remote graphic design jobs from Behance
```

### Extract project details:
```
Get full details for project https://www.behance.net/gallery/123456789/Project-Name
```

## ๐Ÿ—๏ธ Development

```bash
# Install dependencies
npm install

# Build the project
npm run build

# Watch mode for development
npm run dev

# Run the server
npm start
```

## ๐Ÿงช Testing

Run the test suite:

```bash
npm test
```

## ๐Ÿ”ง Troubleshooting

### Browser not launching
Make sure you have Chrome/Chromium installed. Puppeteer will download Chromium automatically on first run.

```bash
# If Puppeteer fails to download Chromium, try:
PUPPETEER_SKIP_DOWNLOAD=true npm install
npx puppeteer browsers install chrome
```

### Timeout errors
Behance may have rate limiting. Try reducing `maxItems` or adding delays between requests.

### Memory issues
For large scraping operations, consider running with increased Node.js memory:
```bash
node --max-old-space-size=4096 dist/index.js
```

### macOS permissions
If you get permission errors on macOS:
```bash
# Allow the binary to run
xattr -dr com.apple.quarantine node_modules/puppeteer/.local-chromium/*/chrome-mac/Chromium.app
```

## ๐Ÿ’ฐ Pricing Comparison

| Feature | Behance MCP Server | Apify Behance Scraper |
|---------|-------------------|----------------------|
| Monthly Cost | **FREE** | $25/month + usage |
| API Key Required | No | Yes |
| Rate Limits | None (respectful scraping) | Varies |
| Setup Time | 5 minutes | 2 minutes |
| Open Source | โœ… Yes | โŒ No |
| Self-hosted | โœ… Yes | โŒ No |

## ๐Ÿ“ Project Structure

```
behance-mcp-server/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ index.ts          # MCP server implementation
โ”‚   โ””โ”€โ”€ scraper.ts        # Behance scraping logic
โ”œโ”€โ”€ dist/                 # Compiled JavaScript
โ”œโ”€โ”€ package.json          # Dependencies and scripts
โ”œโ”€โ”€ tsconfig.json         # TypeScript configuration
โ”œโ”€โ”€ config-example.json   # Example MCP configuration
โ”œโ”€โ”€ LICENSE               # MIT License
โ””โ”€โ”€ README.md            # This file
```

## ๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

### Development Setup

```bash
# Fork and clone
git clone https://github.com/YOUR_USERNAME/behance-mcp-server.git
cd behance-mcp-server

# Install dependencies
npm install

# Create a branch
git checkout -b feature/my-feature

# Make changes and test
npm run build
npm test

# Commit and push
git commit -m "Add my feature"
git push origin feature/my-feature
```

## ๐Ÿ“ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- Built with [Model Context Protocol](https://modelcontextprotocol.io/)
- Uses [Puppeteer](https://pptr.dev/) for browser automation
- Inspired by the need for free, open-source data extraction tools
- Thanks to all contributors!

## ๐Ÿ“ง Support

If you encounter any issues or have questions:
1. Check the [Troubleshooting](#-troubleshooting) section
2. Open an issue on GitHub
3. Join the discussion in the Discussions tab

## ๐Ÿ”’ Security

This project uses Puppeteer for web scraping. Please use responsibly and respect Behance's terms of service. The scraper includes rate limiting and respectful crawling practices.

---

**Made with โค๏ธ for the creative community**

If you find this project useful, please โญ star the repository!

TDQS

A3.8/5.0

Scored across 7 tools

Disambiguation5/5

All tools have distinct purposes: job details vs list, profile details, project details, and separate searches for images, profiles, and projects. No overlap in functionality, so an agent can easily distinguish them.

Naming Consistency5/5

All tool names follow a consistent 'verb_behance_noun' pattern: get_behance_*_details, get_behance_*, search_behance_*. All lowercase with underscores, no mixed conventions.

Tool Count5/5

7 tools is appropriate for a read-only API covering profiles, projects, jobs, and image search. Not too few (covers main resources) nor too many (avoids bloat).

Completeness4/5

Covers search and detail retrieval for the main resource types. However, missing a direct tool to list projects by a specific user (only search by keyword). Minor gap but still functional for most use cases.

Maintenance

ActivityInactive
ResponsivenessNo issues