portfolio-mcp-server
Exposes 32 portfolio tools over stdio so MCP-compatible AI clients can read and manage profile, projects, skills, certifications, education, experience, and testimonials from a universal-portfolio instance.
README
portfolio-mcp-server
An MCP (Model Context Protocol) server that connects AI tools — Claude Desktop, Cursor, GitHub Copilot — directly to your universal-portfolio instance.
What it does
Exposes all 32 portfolio tools over stdio so any MCP-compatible AI client can:
- Read your profile, projects, skills, certifications, education, experience, and testimonials
- Create, update, and delete any portfolio item (with a write-enabled API key)
Related
- universal-portfolio — the full-stack portfolio app this server connects to: github.com/muhammad-awais-web-dev/universal-portfolio
Setup
1. Install dependencies
npm install
2. Configure environment
cp .env.example .env
Edit .env:
# URL of your running portfolio (local or deployed)
PORTFOLIO_URL=https://your-portfolio-domain.com
# API key from portfolio admin → Settings → API Keys
# Enable "can_write" on the key for write tool access
MCP_API_KEY=your_api_key_here
3. Test manually
npm start
For development with auto-reload:
npm run dev
The server communicates over stdio — it won't print anything until an MCP client connects. Startup messages appear on stderr.
Connect to Claude Desktop
Edit ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"portfolio": {
"command": "npx",
"args": ["tsx", "/path/to/portfolio-mcp-server/src/index.ts"],
"env": {
"PORTFOLIO_URL": "https://your-portfolio-domain.com",
"MCP_API_KEY": "your_api_key_here"
}
}
}
}
Restart Claude Desktop. You'll see portfolio listed under MCP tools.
Connect to Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"portfolio": {
"command": "npx",
"args": ["tsx", "/path/to/portfolio-mcp-server/src/index.ts"],
"env": {
"PORTFOLIO_URL": "https://your-portfolio-domain.com",
"MCP_API_KEY": "your_api_key_here"
}
}
}
}
Connect to VS Code
Requires VS Code 1.99+ with the GitHub Copilot extension.
Create or edit .vscode/mcp.json in your workspace (or add to your user settings.json under "mcp"):
{
"servers": {
"portfolio": {
"type": "stdio",
"command": "npx",
"args": ["tsx", "/path/to/portfolio-mcp-server/src/index.ts"],
"env": {
"PORTFOLIO_URL": "https://your-portfolio-domain.com",
"MCP_API_KEY": "your_api_key_here"
}
}
}
}
Open the Copilot Chat panel, switch to Agent mode, and the portfolio server will appear under available tools.
Connect to GitHub Copilot CLI
Edit ~/.copilot/mcp-config.json:
{
"mcpServers": {
"portfolio": {
"type": "stdio",
"command": "npx",
"args": ["tsx", "/path/to/portfolio-mcp-server/src/index.ts"],
"env": {
"PORTFOLIO_URL": "https://your-portfolio-domain.com",
"MCP_API_KEY": "your_api_key_here"
}
}
}
}
Available Tools (32 total)
Read tools — any API key
| Tool | Description |
|---|---|
get_profile |
Profile info, bio, social links |
list_projects |
Published projects (filter by category/skill, paginated) |
get_project |
Single project by ID or slug |
list_skills |
All skills (filter by category, paginated) |
get_skill |
Single skill by ID or name |
list_certifications |
All certifications |
get_certification |
Single certification by ID |
list_education |
Education history |
get_education |
Single education entry by ID |
list_experience |
Work experience |
get_experience |
Single experience entry by ID |
list_testimonials |
Testimonials (filter featured) |
get_testimonial |
Single testimonial by ID |
Write tools — API key with can_write = true
| Tool | Description |
|---|---|
update_profile |
Update name, bio, email, social links, etc. |
create_project |
Create a new project |
update_project |
Update project by ID (including body_html) |
delete_project |
Delete project by ID |
create_skill |
Create a new skill |
update_skill |
Update skill by ID |
delete_skill |
Delete skill by ID |
create_certification |
Create a new certification |
update_certification |
Update certification by ID |
delete_certification |
Delete certification by ID |
create_education |
Create an education entry |
update_education |
Update education by ID |
delete_education |
Delete education by ID |
create_experience |
Create a work experience entry |
update_experience |
Update experience by ID |
delete_experience |
Delete experience by ID |
create_testimonial |
Create a testimonial |
update_testimonial |
Update testimonial by ID |
delete_testimonial |
Delete testimonial by ID |
Example prompts (once connected to Claude/Cursor/Copilot)
- "List all my projects"
- "What skills do I have in the Backend category?"
- "Update my profile bio to: I'm a full-stack developer..."
- "Create a new skill called Docker in the DevOps category"
- "Update project 5 — set body_html to:
<p>New description</p>" - "Publish project with slug 'my-app'"
Requirements
- Node.js 18+
- A running universal-portfolio instance
- An MCP API key (generated in the portfolio admin panel)
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.