COMPLETE Context for Vertex AI: Life Sciences MCP Plugin Generation banner
jeremylongshore jeremylongshore

COMPLETE Context for Vertex AI: Life Sciences MCP Plugin Generation

AI community intermediate

Description

COMPLETE Context for Vertex AI: Life Sciences MCP Plugin Generation skill

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

Repository README

This is the README for jeremylongshore/claude-code-plugins-plus-skills, shared by 25 entries in this directory. It describes the repository, not this entry specifically.

COMPLETE Context for Vertex AI: Life Sciences MCP Plugin Generation

What You're Building (Technologies Invented AFTER Your Training)

1. Claude Code (Released 2025)

  • A desktop CLI tool for software development
  • Users can install "plugins" to extend functionality
  • Plugins distributed via JSON-based marketplaces

2. Model Context Protocol (MCP) - Announced November 2024

  • NOT in your training data - this is NEW
  • Open standard by Anthropic for connecting AI to external tools
  • Uses JSON-RPC 2.0 over stdin/stdout
  • Client-server architecture

**MCP Architecture:**

┌──────────────┐
│  Claude Code │ ← MCP Client (the host application)
│  (Desktop)   │
└──────┬───────┘
       │ Communicates via JSON-RPC 2.0 messages
       │ Over standard input/output (stdio)
       ▼
┌──────────────┐
│  MCP Server  │ ← What you're building (TypeScript/Node.js)
│  (This code) │
└──────────────┘
       │
       │ Makes API calls to external services
       ▼
┌──────────────┐
│   PubMed API │
│   10x Cloud  │
│   Synapse    │
└──────────────┘

3. MCP Protocol Details (You Must Know This)

**JSON-RPC 2.0 Message Types:**

// Request (Client → Server)
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_pubmed",
    "arguments": { "query": "cancer" }
  }
}

// Response (Server → Client)
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [{ "type": "text", "text": "Found 1000 articles" }]
  }
}

**Three Core Primitives:**

  1. **Tools** - Functions the server exposes

    // List available tools
    Request: { "method": "tools/list" }
    Response: { "tools": [{ "name": "search_pubmed", "description": "...", "inputSchema": {...} }] }
    
    // Execute a tool
    Request: { "method": "tools/call", "params": { "name": "search_pubmed", "arguments": {...} } }
    Response: { "content": [...] }
  2. **Resources** - Data the server provides

    Request: { "method": "resources/list" }
    Response: { "resources": [{ "uri": "pubmed://article/12345", "name": "..." }] }
  3. **Prompts** - Templates for AI interactions

    Request: { "method": "prompts/list" }
    Response: { "prompts": [{ "name": "research-outline", "description": "..." }] }

4. TypeScript MCP Server Template (EXACT Pattern to Follow)

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
  CallToolRequestSchema,
  ListToolsRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";
import { z } from "zod";

class PubMedMCPServer {
  private server: Server;

  constructor() {
    // Initialize MCP server
    this.server = new Server(
      {
        name: "pubmed-research-master",
        version: "1.0.0",
      },
      {
        capabilities: {
          tools: {},  // We provide tools
        },
      }
    );

    this.setupToolHandlers()