Skip to main content

MCP server for Srikanth's portfolio data

Project description

Portfolio MCP Server

A dual-stack Model Context Protocol (MCP) server for Srikanth Karthikeyan's portfolio data, available in both Node.js and Python implementations with containerized deployment options.

Features

The server provides the following tools:

🔍 search_portfolio

Search through portfolio data by keywords, category, or content.

Parameters:

  • query (required): Search query to find relevant information
  • category (optional): Filter by specific category
  • limit (optional): Maximum results to return (default: 10)

📂 get_portfolio_categories

Get all available categories in the portfolio data.

🎯 get_portfolio_item

Get a specific portfolio item by ID.

Parameters:

  • id (required): The ID of the portfolio item

📞 get_contact_info

Get all contact information.

💻 get_tech_stack

Get detailed information about technical skills and tools.

Parameters:

  • type (optional): Filter by specific tech type

🚀 Installation & Deployment

Package Registries

Node.js Packages (Both Registries)

# From npmjs.com (public)
npm install srikanth-mcp-portfolio-server

# From GitHub Packages 
npm install @srikanthkarthi/srikanth-mcp-portfolio-server

Python Package

# From PyPI (public)
pip install srikanth-mcp-portfolio

Docker Deployment (Multiple Registries)

From Docker Hub (Public)

# Node.js version
docker run -it srikanthkarthi/mcp-portfolio-server:nodejs-latest

# Python version  
docker run -it srikanthkarthi/mcp-portfolio-server:python-latest

# Multi-runtime version
docker run -it srikanthkarthi/mcp-portfolio-server:multi-latest

From GitHub Container Registry

# Node.js version
docker run -it ghcr.io/srikanthkarthi/mcp-portfolio-server:nodejs-latest

# Python version
docker run -it ghcr.io/srikanthkarthi/mcp-portfolio-server:python-latest

# Multi-runtime version
docker run -it ghcr.io/srikanthkarthi/mcp-portfolio-server:multi-latest

Using Docker Compose (Local Development)

# Choose one:
docker compose up mcp-portfolio-nodejs    # Node.js only
docker compose up mcp-portfolio-python    # Python only
docker compose up mcp-portfolio-multi     # Both runtimes

Development Setup

Node.js Development

npm install
npm run dev

Python Development

pip install -e .
python -m mcp_portfolio_server.server

🔧 Claude Desktop Integration

Using Docker Hub (Public)

{
  "mcpServers": {
    "portfolio": {
      "command": "docker", 
      "args": [
        "run", "-i", "--rm",
        "srikanthkarthi/mcp-portfolio-server:latest"
      ]
    }
  }
}

Using GitHub Container Registry

{
  "mcpServers": {
    "portfolio": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", 
        "ghcr.io/srikanthkarthi/mcp-portfolio-server:latest"
      ]
    }
  }
}

Using npm Package (Public Registry)

{
  "mcpServers": {
    "portfolio": {
      "command": "npx",
      "args": ["srikanth-mcp-portfolio-server"]
    }
  }
}

Using npm Package from GitHub Packages

{
  "mcpServers": {
    "portfolio": {
      "command": "npx",
      "args": ["@srikanthkarthi/srikanth-mcp-portfolio-server"]
    }
  }
}

Using Python Package

{
  "mcpServers": {
    "portfolio": {
      "command": "python",
      "args": ["-m", "mcp_portfolio_server.server"]
    }
  }
}

Development Mode

{
  "mcpServers": {
    "portfolio": {
      "command": "node",
      "args": ["/path/to/mcp-portfolio/src/index.js"],
      "cwd": "/path/to/mcp-portfolio"
    }
  }
}

📦 Automated Building & Publishing

GitHub Actions Workflows

The repository includes automated CI/CD workflows:

  • Triggers: Git tags (v*) or manual workflow dispatch
  • Builds: Multi-architecture Docker images (AMD64/ARM64)
  • Publishes:
    • Node.js package to GitHub Packages
    • Python package to PyPI
    • Docker images to GitHub Container Registry

Manual Building

Docker Build Commands

# Build Node.js image
docker build --target nodejs -t mcp-portfolio:nodejs .

# Build Python image  
docker build --target python -t mcp-portfolio:python .

# Build multi-runtime image
docker build --target multi -t mcp-portfolio:multi .

Configuration Options

Environment Variable Description Default
NODE_ENV Node.js environment production
PYTHONUNBUFFERED Python output buffering 1
DATA_PATH Portfolio data file path /app/sample-data.json

Switch between Node.js and Python in multi-runtime container:

# In docker-compose.yml, uncomment to use Python:
command: ["python3", "-m", "mcp_portfolio_server.server"]

Data Categories

The server provides access to the following portfolio categories:

  • Profile Summary: Overview and introduction
  • Current Position: Job title, company, duration
  • Current Work: Responsibilities and projects
  • Experience: Work history and achievements
  • Education: Academic background
  • Tech Stack: Programming languages, frameworks, tools
  • Certifications: Professional certifications
  • Volunteerism: Community service and activities
  • Contact: Social media and professional links
  • Languages: Language proficiency

Example Queries

  • Search for cloud experience: search_portfolio("cloud", "Experience")
  • Get all tech stack info: get_tech_stack()
  • Find contact information: get_contact_info()
  • Search for certifications: search_portfolio("aws certification")

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

srikanth_mcp_portfolio-1.0.2.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

srikanth_mcp_portfolio-1.0.2-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file srikanth_mcp_portfolio-1.0.2.tar.gz.

File metadata

  • Download URL: srikanth_mcp_portfolio-1.0.2.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for srikanth_mcp_portfolio-1.0.2.tar.gz
Algorithm Hash digest
SHA256 a7e3725af71d677da5f32bc4f5c742ebb9badb24eb321cc5469c132f06ed6c26
MD5 ac8bf518b2c18a83759398e6686cec07
BLAKE2b-256 129c3b1b9e4cc18813b086c68a52b6213dac44f8d6512131e887f0ef672ea22a

See more details on using hashes here.

Provenance

The following attestation bundles were made for srikanth_mcp_portfolio-1.0.2.tar.gz:

Publisher: publish-github-packages.yml on srikanth-karthi/mcp-portfolio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srikanth_mcp_portfolio-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for srikanth_mcp_portfolio-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 48b68231dc8073cd1cfebab2a53e4b8c47292a71f5a53875a5fa9f098415201c
MD5 dd334702c59581b8260ab9b69d8b81f2
BLAKE2b-256 79e8280ae8acc63f46941b0f949fe2eb74d2190c3032360a5f14e0fb457dd1b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for srikanth_mcp_portfolio-1.0.2-py3-none-any.whl:

Publisher: publish-github-packages.yml on srikanth-karthi/mcp-portfolio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page