Behance MCP Server
# ๐ Behance MCP Server
[](https://modelcontextprotocol.io/)
[](https://nodejs.org/)
[](https://www.typescriptlang.org/)
[](LICENSE)
[](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
Scored across 7 tools
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.
All tool names follow a consistent 'verb_behance_noun' pattern: get_behance_*_details, get_behance_*, search_behance_*. All lowercase with underscores, no mixed conventions.
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).
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.