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.1.tar.gz (23.4 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.1-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: srikanth_mcp_portfolio-1.0.1.tar.gz
  • Upload date:
  • Size: 23.4 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.1.tar.gz
Algorithm Hash digest
SHA256 251250bc3be7f0375f596723d7dc95ea811f748fc18832ee8bf80b96e444d0c3
MD5 1a95c7a75650323f7ccb1ae034267566
BLAKE2b-256 c9c9233c6675db4f0fbcbac50133eef7e51b78d3ba8476948f809f0dbdc69a9c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for srikanth_mcp_portfolio-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9c06d35ad3fd12c94f4e82fbe22f28aecb213e1a904b7264a98ea2f4177904e9
MD5 781867cf6289b1b19475674b05d73280
BLAKE2b-256 25ba5719c7a4cf0d82d5095788f664c9ee4c7bac7ed833fc7a4b26ec0d617d92

See more details on using hashes here.

Provenance

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