About HTTP Server with MCP Support
An Express and TypeScript HTTP server example that serves a webpage and candidate information. It is intended for developers adapting a candidate-data server, with stateless MCP support over Streamable HTTP.
Key features
- 01Webpage and MCP endpoint
- 02Stateless Streamable HTTP transport
- 03Candidate details configurable by environment variables
- 04Express and TypeScript implementation
Use cases
- 01Serving candidate details to MCP clients
- 02Customizing contact, resume, and profile links
- 03Developing an HTTP and MCP server example
MCP support
Exposes a stateless MCP endpoint using Streamable HTTP, alongside its webpage. Candidate information is configurable through environment variables or `src/config.ts`.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEHTTP Server with MCP Support
An HTTP server built with Express and TypeScript that serves both a webpage and a Model Context Protocol (MCP) endpoint.
Features
- HTTP server with both web and MCP functionality
- Stateless MCP server implementation with modern Streamable HTTP transport
- TypeScript for type safety
- Express.js for HTTP handling
Requirements
- Node.js 18+
- npm or yarn
Installation
# Clone the repository (or download)
git clone https://github.com/your-username/example-candidate-mcp-server.git
cd example-candidate-mcp-server
# Install dependencies
npm install
# Start the http transport
npm run start:web
# Start the stdio transport
npm run start
Customizing the candidate data
To customize the candidate data, you can set the following environment variables in your environment or in a .env file at the root of your project:
CONTACT_EMAIL: The contact email address for the server.MAILGUN_API_KEY: The API key for Mailgun, used for sending emails.MAILGUN_DOMAIN: The domain for Mailgun, used for sending emails.CANDIDATE_NAME: The name of the candidate.RESUME_URL: The URL to the candidate's resume in PDF format.LINKEDIN_URL: The URL to the candidate's LinkedIn profile.GITHUB_URL: The URL to the candidate's GitHub profile.WEBSITE_URL: The URL to the candidate's personal website.
These variables are used to configure the server and customize the candidate's information that is served by the MCP server. Make sure to restart the server after making changes to these variables for them to take effect.
You can also update them directly in src/config.ts.
Development
# Build the TypeScript code
npm run build
# Run in development mode with auto-reloading
npm run dev
# Run tests (when added)
npm test
Server Structure
src/
├── index.ts # Main application entry point
├── express.ts # HTTP server configuration
├── stdio.ts # STDIO server configuration
├── config.ts # Server configuration
└── types.ts # TypeScript type definitions
License
Regenerating the fly deploy key
The token was made with:
fly tokens create deploy --name gh-jakegaylor-com-mcp-server --expiry 2160h
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.