Enables integration with Atlassian products, providing access to JIRA and Confluence systems through the MCP proxy server
Provides local file system access, allowing the MCP proxy server to read and write files on the local system
Provides repository and issue management capabilities, allowing the MCP proxy server to interact with GitHub resources
Supports document access and management within Google Drive, enabling the MCP proxy server to retrieve and manipulate documents
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Integration Proxysearch the knowledge base for recent JIRA tickets about authentication issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Integration Challenge: Proxy & RAG Foundations
AI Protocol Engineer Challenge: Week 1
This repository contains the complete implementation for the MCP Integration, Proxy & RAG Foundations challenge using TypeScript/NodeJS with LangGraph.js.
Related MCP server: OpenAPI MCP Server
Project Overview
This project implements a comprehensive MCP (Model Context Protocol) ecosystem including:
MCP Proxy Server: Routes requests to multiple downstream MCP servers
Dev Assistant Agent: LangGraph.js-based agent with RAG capabilities
Mock Knowledge Base: Sample data for testing RAG functionality
MCP Client Tester: Testing tools for MCP server interactions
IDE Integration: Configuration for VS Code/Cursor MCP support
Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ IDE Client │ ──▶│ MCP Proxy │ ──▶│ Downstream MCP │
│ (VS Code/Cursor)│ │ Server │ │ Servers │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │
▼ │
┌──────────────────┐ │
│ Dev Assistant │ │
│ Agent │ │
│ (LangGraph.js) │ │
└──────────────────┘ │
│ │
▼ │
┌──────────────────┐ │
│ RAG Pipeline │ │
│ (LangChain JS) │ │
└──────────────────┘ │
│ │
▼ │
┌──────────────────┐ │
│ Mock Knowledge │◀────────────┘
│ Base │
└──────────────────┘Project Structure
mcp/
├── src/
│ ├── proxy/ # MCP Proxy Server implementation
│ ├── agent/ # Dev Assistant Agent with LangGraph.js
│ ├── rag/ # RAG setup and utilities
│ ├── client/ # MCP Client testing tools
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Shared utilities
├── tests/ # Unit and integration tests
├── docs/ # Documentation
│ ├── protocols_understanding.md
│ ├── mcp_server_exploration.md
│ ├── advanced_mcp_concepts.md
│ ├── realtime_rag_notes.md
│ └── ide_mcp_integration.md
├── mock_knowledge_base/ # Sample data for RAG
│ ├── docs/
│ ├── code/
│ ├── tickets/
│ └── jira_tickets.json
├── package.json
├── tsconfig.json
└── README.mdTechnology Stack
Core Technologies
Runtime: Node.js 18+
Language: TypeScript 5.5+
Agent Framework: LangGraph.js
RAG Framework: LangChain JS
Dependencies
Protocol Communication: Built-in fetch, axios
Agent Building: @langchain/langgraph
RAG Components: @langchain/community, langchain
Web Framework: Express.js
Testing: Vitest
Development: tsx, eslint, prettier
Quick Start
Prerequisites
Node.js 18 or later
npm or yarn package manager
Git
Installation
Clone the repository:
git clone https://github.com/your-username/mcp.git
cd mcpInstall dependencies:
npm install --legacy-peer-depsBuild the project:
npm run buildRun tests:
npm testRunning Components
1. MCP Proxy Server
npm run proxy:start
# Starts on http://localhost:80022. Dev Assistant Agent
npm run agent:start3. MCP Client Tester
npm run client:test4. Development Mode (Watch)
npm run devEnvironment Setup
Required Environment Variables
Create a .env file in the root directory:
# OpenAI API Key (for LangChain)
OPENAI_API_KEY=your_openai_api_key
# GitHub Token (for GitHub MCP server)
GITHUB_TOKEN=your_github_token
# Google Drive Credentials (for GDrive MCP server)
GOOGLE_DRIVE_CLIENT_ID=your_client_id
GOOGLE_DRIVE_CLIENT_SECRET=your_client_secret
# Atlassian Credentials (for Atlassian MCP server)
ATLASSIAN_API_TOKEN=your_atlassian_token
ATLASSIAN_INSTANCE_URL=your_instance_url
# Proxy Configuration
PROXY_PORT=8002
PROXY_HOST=localhost
# Logging
LOG_LEVEL=infoMCP Server Configuration
The proxy server can route to multiple downstream MCP servers:
Supported Servers
Filesystem: Local file system access
GitHub: Repository and issue management
Google Drive: Document access and management
Atlassian: JIRA and Confluence integration
Proxy Routing Configuration
// src/proxy/config.ts
export const serverRoutes = {
'filesystem': 'http://localhost:8001',
'github': 'http://localhost:8003',
'gdrive': 'http://localhost:8004',
'atlassian': 'http://localhost:8005'
};IDE Integration
VS Code Setup
Install the Copilot Chat extension
Add to your
settings.json:
{
"github.copilot.chat.mcp.include": [
"http://localhost:8002/mcp"
]
}Cursor Setup
Open Cursor settings
Add MCP server URL:
http://localhost:8002/mcp
Testing
Run All Tests
npm testRun Specific Test Suites
npm run test:proxy # Proxy server tests
npm run test:agent # Agent tests
npm run test:rag # RAG pipeline tests
npm run test:client # Client testsTest Coverage
npm run test:coverageDocumentation
Protocols Understanding: MCP and A2A protocol explanation
MCP Server Exploration: Target server analysis
Advanced MCP Concepts: Gateway, RBAC, and streaming concepts
Real-time RAG Notes: Pathway and real-time indexing concepts
IDE Integration Guide: Step-by-step IDE setup
Development Workflow
Code Style
ESLint for linting
Prettier for formatting
TypeScript strict mode enabled
Git Workflow
# Format code
npm run format
# Lint code
npm run lint
# Run tests before commit
npm test
# Build before push
npm run buildFeatures Implemented
✅ Task 1: Environment Setup & Protocol Study
TypeScript/NodeJS environment with LangGraph.js
Mock knowledge base structure
Comprehensive MCP/A2A protocol documentation
Target MCP server analysis
🔄 Upcoming Tasks
Task 2: Explore & Test Existing MCP Servers
Task 3: Design & Implement MCP Proxy Server
Task 4: Implement Basic RAG Agent with MCP Integration
Task 5: Research Advanced MCP Concepts
Task 6: Test MCP Proxy with IDE Integration
Task 7: Documentation & Stand-up Preparation
Troubleshooting
Common Issues
Dependency conflicts: Use
npm install --legacy-peer-depsTypeScript errors: Ensure TypeScript 5.5+ is installed
Build failures: Check Node.js version (18+ required)
Test failures: Verify environment variables are set
Getting Help
Check the documentation for detailed guides
Review the protocols understanding document
Examine test files for usage examples
Check GitHub issues for known problems
Contributing
Fork the repository
Create a feature branch:
git checkout -b feature/new-featureMake changes and add tests
Run
npm testandnpm run lintCommit changes:
git commit -m 'Add new feature'Push to branch:
git push origin feature/new-featureSubmit a pull request
License
MIT License - see LICENSE file for details.
Contact
For questions or support, please open an issue on GitHub.