Taiwan Tender MCP
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., "@Taiwan Tender MCPSearch for recent office renovation and decoration tenders"
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.
Taiwan Tender MCP
台灣政府標案查詢 MCP 伺服器,串接政府電子採購網 API。
安裝方式
方法一:npx 直接使用(推薦)
在 Claude Desktop 設定檔中加入:
{
"mcpServers": {
"taiwan_tender": {
"command": "npx",
"args": ["-y", "github:jameslai-sparkofy/taiwan-tender-mcp"]
}
}
}方法二:本地安裝
git clone https://github.com/jameslai-sparkofy/taiwan-tender-mcp.git
cd taiwan-tender-mcp
npm install
npm run build然後在設定檔中使用本地路徑:
{
"mcpServers": {
"taiwan_tender": {
"command": "node",
"args": ["/path/to/taiwan-tender-mcp/build/index.js"]
}
}
}Claude Desktop 設定檔位置
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
功能
提供 6 個工具:
工具 | 功能 |
| 依關鍵字搜尋標案 |
| 依分類代碼搜尋 |
| 取得標案詳細資訊 |
| 列出指定日期的標案 |
| 列出指定機關的標案 |
| 列出標的分類代碼 |
使用範例
對 Claude 說:
「搜尋近期的裝修標案」
「找地板相關的工程標案」
「查詢分類代碼 5174 的標案」
「列出今天的招標公告」
「查詢這個標案的詳細資訊」
常用分類代碼
工程類
代碼 | 名稱 |
5174 | 地板及牆面貼磚工程 |
5175 | 其他鋪地板、牆面及壁紙工程 |
5177 | 室內裝潢工程 |
5179 | 其他裝修工程 |
5164 | 電力工程 |
5162 | 水管及排水設施鋪設工程 |
勞務類
代碼 | 名稱 |
8671 | 建築服務(設計) |
8672 | 工程服務(技師) |
521 | 建築施工服務 |
522 | 土木工程施工服務 |
財物類
代碼 | 名稱 |
452 | 計算機及其零件與配件 |
15 | 石材、砂及泥土 |
381 | 傢具 |
資料來源
授權
MIT License
Available Tools
6 toolsget_tender_detailC
取得單一標案的詳細資訊,包含機關資料、採購資料、招標資料、領投開標資訊等完整內容。
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | 機關代碼,例如:3.9.22 | |
| job_number | Yes | 標案案號,例如:T-114165 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what information is returned but doesn't address key behavioral aspects: it doesn't state whether this is a read-only operation (though implied by '取得'), mention error conditions (e.g., invalid unit_id or job_number), discuss performance or rate limits, or describe the response format. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('取得單一標案的詳細資訊') and then elaborates on the content included. There's no wasted text, and it's appropriately sized for a simple lookup tool. However, it could be slightly more structured (e.g., by explicitly noting it's for single tenders vs. lists).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple lookup with 2 required parameters), 100% schema coverage, and no output schema, the description is minimally adequate. It states what the tool does and what information it returns, but lacks behavioral details (e.g., error handling, response structure) that would be helpful for an agent. Without annotations or output schema, the description should do more to compensate, but it only meets the baseline for a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters (unit_id and job_number) clearly documented in the schema. The description adds no parameter-specific information beyond implying that these are used to identify a single tender. Since the schema already provides full coverage, the baseline score of 3 is appropriate—the description doesn't add value but doesn't detract either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '取得單一標案的詳細資訊' (get detailed information for a single tender). It specifies the verb (取得/get) and resource (標案/tender), and lists the types of information included (機關資料、採購資料、招標資料、領投開標資訊等完整內容). However, it doesn't explicitly differentiate from sibling tools like 'list_tenders_by_date' or 'search_tenders', which likely return multiple or filtered results rather than single tender details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that this is for single tender details (as opposed to listing or searching multiple tenders), nor does it specify prerequisites or exclusions. The agent must infer usage from the description's focus on '單一標案' (single tender) and the required parameters, but this is implicit rather than explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesB
列出政府採購標的分類代碼。可指定類型(工程類、財物類、勞務類)或搜尋關鍵字。
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | 分類類型:all(全部)、engineering(工程類)、goods(財物類)、services(勞務類) | all |
| search | No | 搜尋分類名稱關鍵字,例如:地板、電腦、建築 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool lists categories with filtering options, but doesn't disclose behavioral traits such as whether it's read-only, requires authentication, has rate limits, returns paginated results, or what the output format looks like. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the main purpose and includes key usage details. There's no wasted text, though it could be slightly more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., list format, data structure), behavioral aspects like safety or performance, or how it differs from siblings. For a tool with 2 parameters and no structured output documentation, this leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('type' and 'search') well-documented in the schema. The description adds minimal value by mentioning the same filtering options without providing additional syntax or format details beyond what the schema already covers. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('列出' meaning 'list') and resource ('政府採購標的分類代碼' meaning 'government procurement category codes'), providing a specific purpose. However, it doesn't explicitly differentiate from sibling tools like 'search_by_category' or 'search_tenders', which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning filtering options ('可指定類型' meaning 'can specify type' and '搜尋關鍵字' meaning 'search keyword'), but it doesn't provide explicit guidance on when to use this tool versus alternatives like 'search_by_category'. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tenders_by_dateB
列出指定日期的所有標案公告。日期格式為 YYYYMMDD,例如:20260130
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | 日期,格式 YYYYMMDD,例如:20260130 | |
| type_filter | No | 公告類型過濾,例如:公開招標公告、決標公告 | |
| limit | No | 回傳筆數上限(預設 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the date format and a limit parameter, but does not disclose critical behavioral traits such as whether this is a read-only operation, potential rate limits, authentication requirements, or what happens if no tenders exist for the date. For a tool with no annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose and includes a necessary example for date format. There is zero waste, and every part of the sentence earns its place by clarifying the action and format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 3 parameters, the description is incomplete. It covers the basic purpose and date format but lacks information on behavioral aspects (e.g., read-only status, error handling), output format, or detailed parameter guidance. For a tool with this complexity and no structured support, it should do more to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (date, type_filter, limit) with descriptions. The description adds minimal value beyond the schema by mentioning the date format example, but does not provide additional semantic context for parameters like 'type_filter' usage or 'limit' implications. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('列出' meaning 'list') and resource ('標案公告' meaning 'tender announcements') with a precise scope ('指定日期' meaning 'specified date'). It distinguishes from siblings like 'list_tenders_by_unit' (by unit) and 'search_tenders' (general search) by emphasizing date-based listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing tender announcements by date, but does not explicitly state when to use this tool versus alternatives like 'list_tenders_by_unit' (by unit) or 'search_tenders' (keyword search). It provides context (date-based listing) but lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tenders_by_unitC
列出指定機關的所有標案。需提供機關代碼(unit_id)。
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | 機關代碼,例如:3.9.22(國立清華大學) | |
| limit | No | 回傳筆數上限(預設 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior (beyond the limit parameter), or what the return format looks like (especially since there's no output schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose and required parameter. There's no wasted text or redundancy, making it appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain the return values, error conditions, or behavioral traits, leaving significant gaps for an AI agent to understand how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (unit_id and limit) adequately. The description adds no additional parameter semantics beyond what's in the schema, such as format examples for unit_id or constraints on limit values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('列出' - list) and resource ('標案' - tenders) with the scope '指定機關' (specified unit). It distinguishes from siblings like list_tenders_by_date (by date) and search_tenders (general search), but doesn't explicitly contrast with get_tender_detail (detail view) or search_by_category (category-based).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like list_tenders_by_date or search_tenders. It only states the basic requirement (unit_id), without mentioning prerequisites, typical use cases, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_categoryC
依標的分類代碼搜尋標案。例如:5174(地板及牆面貼磚工程)、8672(工程服務)、452(計算機及其零件)
| Name | Required | Description | Default |
|---|---|---|---|
| category_code | Yes | 標的分類代碼,例如:5174、8672、452 | |
| keyword | No | 額外的關鍵字過濾(可選) | |
| limit | No | 回傳筆數上限(預設 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes a search operation but doesn't mention whether this is read-only, if it requires authentication, rate limits, pagination behavior, or what the output format looks like. The examples add some context but don't cover key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. The example codes are helpful but could be slightly more integrated; overall, it's efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., list of tenders, error conditions) or behavioral aspects like safety or performance. For a search tool with 3 parameters, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description provides example category codes (e.g., 5174, 8672, 452) which add semantic context beyond the schema, but doesn't explain parameter interactions or usage nuances. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '依標的分類代碼搜尋標案' (search for tenders by category code). It specifies the verb '搜尋' (search) and resource '標案' (tenders), though it doesn't explicitly differentiate from sibling tools like 'search_tenders' or 'list_tenders_by_date'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It includes example category codes but doesn't mention sibling tools or contexts where this tool is preferred, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tendersB
搜尋台灣政府標案,依關鍵字搜尋標案名稱。回傳招標中的標案列表,包含案名、機關、預算、截止日期等資訊。
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | 搜尋關鍵字,例如:裝修、軟體、設備 | |
| only_active | No | 是否只顯示招標中的案件(預設 true) | |
| limit | No | 回傳筆數上限(預設 20,最大 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions returning '招標中的標案列表' (active tender lists) and specific fields, but doesn't disclose important behavioral traits like whether this is a read-only operation (implied but not stated), pagination behavior beyond the limit parameter, rate limits, authentication requirements, error conditions, or what happens when no results are found. The description adds minimal context beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the core functionality (search Taiwan government tenders by keyword), and the second specifies the return (active tenders with listed fields). There's no wasted language, though it could be slightly more front-loaded by mentioning 'active tenders' earlier. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a search tool with 3 parameters. It doesn't explain the return format beyond listing field names, doesn't describe error handling, doesn't mention sorting or ordering of results, and provides no context about data freshness or source limitations. For a tool that returns lists of government tenders, more behavioral context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents all three parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it mentions keyword searching but doesn't elaborate on search behavior (exact match, partial match, etc.) or provide additional context about the only_active or limit parameters. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for Taiwan government tenders by keyword in tender names and returns active tender lists with specific fields (name, agency, budget, deadline). It specifies '招標中的標案' (active tenders) which distinguishes it from some siblings like list_tenders_by_date that might show all tenders. However, it doesn't explicitly differentiate from search_by_category which also searches but by category rather than keyword.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for keyword-based searches of active tenders, but provides no explicit guidance on when to use this tool versus alternatives like search_by_category, list_tenders_by_date, or list_tenders_by_unit. There's no mention of prerequisites, exclusions, or comparative advantages with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: get_tender_detail retrieves a single tender's full details, list_categories lists classification codes, list_tenders_by_date and list_tenders_by_unit filter by date and unit respectively, search_by_category filters by classification code, and search_tenders performs keyword searches. There is no overlap in functionality.
All tools follow a consistent verb_noun pattern with snake_case: get_tender_detail, list_categories, list_tenders_by_date, list_tenders_by_unit, search_by_category, and search_tenders. The naming is predictable and uniform throughout.
With 6 tools, the server is well-scoped for its purpose of accessing Taiwan government tenders. Each tool serves a specific querying or filtering role, and the count is neither too sparse nor bloated for the domain.
The tool set provides comprehensive querying capabilities (by detail, date, unit, category, and keyword) and classification listing, covering most search and retrieval needs. A minor gap is the lack of tools for actions like subscribing to updates or managing saved searches, but core workflows are well-covered.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Taiwan government tender search and intelligence: 14M+ notices, vendor and agency reports.
Taiwan Government Procurement MCP — 政府電子採購網 (PCC) tenders (keyless).
Search public procurement notices from 17 sources across Germany, the EU and the UK. Read-only.
Search EU public tenders across TED and 8 national portals. Monitor, match, and analyse procurement.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jameslai-sparkofy/taiwan-tender-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server