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 @srikanth-karthi/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/srikanth-karthi/mcp-portfolio-server:nodejs-latest

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

# Multi-runtime version
docker run -it ghcr.io/srikanth-karthi/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": ["@srikanth-karthi/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.4.0.tar.gz (12.1 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.4.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: srikanth_mcp_portfolio-1.4.0.tar.gz
  • Upload date:
  • Size: 12.1 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.4.0.tar.gz
Algorithm Hash digest
SHA256 44be4398fa95482501ca676d0296920c815fc8682599e059d013dba6606cf7d8
MD5 e895cf26a3fd2a1ac70cbabc1ef2aead
BLAKE2b-256 559f70668d3e6e36b432876454067cf9775bcd9ac21450d2fa4ca561bdbdb4aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for srikanth_mcp_portfolio-1.4.0.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.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for srikanth_mcp_portfolio-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 423347ab911065af9726e873a1547dcd02f3c1edca623a515b5a7a0de1853ded
MD5 62ecf37871d7e05350e22d1a588a7cc7
BLAKE2b-256 45f3fbdf08ef15b0c9a5d9f2f13271fbe5682c439971f535da4f19411ad0b9f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for srikanth_mcp_portfolio-1.4.0-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