EPC Tender Screening MCP

EPC Tender Screening MCP

An MCP-only server for evidence-based EPC tender screening that enables AI agents to run a full screening workflow, extract requirements, match company profiles, generate compliance matrices, and produce bid/no-bid advisory memos.

Category
Visit Server

README

EPC Tender Screening MCP

An MCP-only server for evidence-based EPC tender screening.

This project lets MCP-compatible AI agents:

  • run a full screen_tender workflow,
  • extract tender requirements from uploaded tender text,
  • match requirements against a company profile,
  • generate compliance matrices,
  • produce bid/no-bid advisory memos,
  • search explicit public tender source URLs,
  • search local historical proposal examples for grounding.

The project is designed as a clean public MCP repository. It does not include private company documents, credentials, UI pages, or production tender archives.

Why This Exists

Tender teams spend significant time reading long procurement documents, checking eligibility, finding supporting evidence, and deciding whether to bid. This MCP server gives AI agents a structured tool layer for that workflow while keeping the final decision human-reviewed.

Tools

Tool Purpose
screen_tender Run the full screening workflow end to end
connect_company_profile_text Save uploaded/extracted company profile text as local context
connect_current_tender_text Save uploaded/extracted tender text as current tender
connect_tender_source_urls Allowlist public tender source URLs for discovery
search_public_tenders Search explicit source URLs without crawling the whole internet
get_data_status Show connected data sources and fallback state
extract_tender_requirements Extract tender requirements
match_company_profile Match requirements against company capabilities
generate_compliance_matrix Generate requirement-level compliance rows
generate_bid_no_bid_memo Generate advisory fit/risk scores and recommendation
search_historical_proposals Search local historical proposal examples

Quick Start

npm install
npm run dev

Open:

http://localhost:3000

The root URL returns JSON metadata only. There is no UI.

The Streamable HTTP MCP endpoint is:

http://localhost:3000/api/mcp

The root URL returns JSON metadata only:

curl http://localhost:3000

For local connector testing without auth:

MCP_REQUIRE_AUTH=false npm run dev

On Windows PowerShell:

$env:MCP_REQUIRE_AUTH="false"
npm run dev

Stdio MCP

npm run mcp:stdio

Example Claude Desktop style config:

{
  "mcpServers": {
    "epc-tender-screening": {
      "command": "npm",
      "args": ["run", "mcp:stdio"],
      "cwd": "/absolute/path/to/epc-tender-screening-mcp-showcase"
    }
  }
}

Remote Connector Auth

The repo includes a demo OAuth shim for hosted connector experiments.

Set:

MCP_PUBLIC_BASE_URL=https://your-domain.example
MCP_API_KEY=replace-this-token

Connector values:

MCP URL: https://your-domain.example/api/mcp
Authorization URL: https://your-domain.example/oauth/authorize
Token URL: https://your-domain.example/oauth/token
Client ID: epc-tender-demo-client
Client Secret: epc-tender-demo-secret
Scope: mcp tender:read tender:screen

For production, replace the demo OAuth shim with real OAuth and per-user authorization.

Demo token auth is disabled by default in production. For temporary hosted demos only, set:

MCP_ALLOW_DEMO_AUTH=true
MCP_DEMO_ACCESS_TOKEN=replace-this-demo-token

Do not use the default demo token for a public deployment.

ChatGPT Upload Workflow

Upload company profile and tender files to ChatGPT, then ask:

Extract text from the uploaded company profile and tender files.
Call screen_tender with tender_text and company_profile_text.
Summarize the recommendation, red flags, missing documents, and next human actions.

For one-shot analysis without saving:

Extract text from both uploaded files, then call generate_bid_no_bid_memo with tender_text and company_profile_text.

Public Tender Discovery

This project does not crawl the open internet. It searches explicit sources only.

connect_tender_source_urls
search_public_tenders

Use search_public_tenders for discovery leads only. Upload or connect the actual tender document before screening.

Data Files

Safe example files:

data/company-profile.example.json
data/sample-tender.md
data/historical-proposals.example.json

Private local files are ignored by git:

data/company-profile.local.json
data/current-tender.local.md
data/tender-sources.local.json

Example fallback is disabled by default. To demo with bundled example files:

MCP_ALLOW_EXAMPLE_FALLBACK=true npm run dev

On Windows PowerShell:

$env:MCP_ALLOW_EXAMPLE_FALLBACK="true"
npm run dev

Safety

The bid/no-bid memo is advisory only. Every output should be reviewed by tender, finance, legal, HSE, and management owners before submission.

Do not use this project to automatically submit tenders or make binding commercial decisions.

Development

npm run lint
npm run build
npm run eval

The eval suite runs through the real MCP stdio transport and checks tool exposure, safe failure behavior, screening outputs, and evidence traces.

Docs

CI

GitHub Actions runs:

npm ci
npm run lint
npm run build
npm run eval

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured