msc-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., "@msc-mcplist all notification categories"
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.
MSC MCP Server
MCP Server lấy thông báo từ Hệ thống Mua sắm công (muasamcong.mpi.gov.vn).
Tính năng
3 tools:
get_notification_categories— Lấy danh sách loại thông báoget_notifications— Lấy danh sách thông báo theo loại (có phân trang, tìm kiếm)get_notification_detail— Lấy chi tiết một thông báo theo ID
Related MCP server: mcp-dauthau
Cài đặt
Dùng npx (khuyên dùng)
Không cần cài đặt, chỉ cần cấu hình MCP client (xem phần Cấu hình bên dưới).
Cài đặt global
npm install -g msc-mcpTừ source
git clone https://github.com/huydepzai121/mcp_msc.git
cd mcp_msc
npm install
npm run buildCấu hình
Claude Desktop
Thêm vào file claude_desktop_config.json:
Dùng npx (khuyên dùng):
{
"mcpServers": {
"msc-mcp": {
"command": "npx",
"args": ["-y", "msc-mcp"]
}
}
}Dùng local path:
{
"mcpServers": {
"msc-mcp": {
"command": "node",
"args": ["/ĐƯỜNG-DẪN-TỚI/msc_mcp/build/index.js"]
}
}
}Cursor
Thêm vào MCP settings:
Dùng npx:
{
"msc-mcp": {
"command": "npx",
"args": ["-y", "msc-mcp"]
}
}Dùng local path:
{
"msc-mcp": {
"command": "node",
"args": ["/ĐƯỜNG-DẪN-TỚI/msc_mcp/build/index.js"]
}
}Loại thông báo
Code | Tên | Tên tiếng Anh |
1 | Thông báo quản trị | Admin Notice |
2 | Thông báo về Hệ thống | System Notice |
3 | Lịch bảo trì hệ thống | System maintenance schedule |
4 | Thông báo về các khóa đào tạo | Notice of training courses |
5 | Hành vi hạn chế cạnh tranh | Anti-competitive behavior |
6 | Thông báo khác | Other notices |
Yêu cầu
Node.js >= 18
Available Tools
3 toolsget_notification_categoriesA
Lấy danh sách loại thông báo từ hệ thống Mua sắm công
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It clearly implies a read-only operation ('Lấy' = get/fetch), but provides no additional context such as sorting, filtering, pagination, authorization requirements, or return format. The description is minimally transparent but not misleading.
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, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's purpose and source system without redundancy.
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 zero-parameter tool with no output schema, the description is reasonably complete. It specifies what is returned (a list of notification types) and from where (the public procurement system). However, it does not detail the return structure or any edge cases, but this is acceptable given the tool's simplicity.
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 tool has zero parameters, so the schema is trivially complete (100% coverage). Per the rubric, a baseline of 4 applies when there are no parameters, as there is nothing for the description to clarify about parameter semantics.
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 that the tool retrieves a list of notification categories from the public procurement system. It uses a specific verb ('Lấy' = get) and a specific resource ('danh sách loại thông báo' = list of notification types), which distinguishes it from siblings like get_notifications or get_notification_detail.
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 explicit guidance on when to use this tool versus alternatives. It does not mention get_notifications or get_notification_detail, nor does it state any exclusions or preferred use cases. The intended usage is only implied by the tool's name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notification_detailA
Lấy chi tiết một thông báo theo ID từ hệ thống Mua sắm công
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID của thông báo | |
| notiType | No | Mã loại thông báo (để tìm kiếm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Get' implies a read-only operation, but no additional behavioral details (e.g., authorization requirements, error cases) are disclosed. For a simple lookup tool, this is adequate but minimal.
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, concise sentence in Vietnamese that immediately states the tool's purpose. No filler or redundant information.
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 simple lookup tool with two parameters fully described in the schema and no output schema, the description is sufficient. It clearly identifies the scope and resource. It could mention the return format, but this is not critical given the tool's trivial nature.
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 has 100% coverage for both parameters, with 'id' described as UUID and 'notiType' as a type code. The description's mention of 'by ID' aligns with the schema but adds no extra meaning beyond what the schema already provides.
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 retrieves details of a single notification by ID, distinguishing it from sibling tools that list notifications or categories. The verb 'get' plus specific resource ('chi tiết một thông báo') and identifier ('theo ID') makes the purpose unambiguous.
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 use when a specific notification's detail is needed by ID, contrasting with the listing tools. It doesn't explicitly exclude other cases, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notificationsC
Lấy danh sách thông báo theo loại từ hệ thống Mua sắm công
| Name | Required | Description | Default |
|---|---|---|---|
| content | No | Từ khóa tìm kiếm | |
| notiType | Yes | Mã loại thông báo, ví dụ: '2' = Thông báo về Hệ thống | |
| pageSize | No | Số lượng kết quả mỗi trang | |
| pageNumber | No | Số trang (bắt đầu từ 0) | |
| isHighlighted | No | Lọc thông báo nổi bật |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only says 'get list' and does not disclose pagination behavior, sorting, authentication requirements, or response format. The schema covers parameters, but the behavioral traits (e.g., defaults, filtering logic) are absent from the description.
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?
A single, concise, front-loaded sentence that efficiently communicates the tool's purpose. No redundant wording or filler.
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?
The tool has 5 parameters, no output schema, and no annotations. The description only states the basic function and omits important context like what the list response contains, whether pagination is required, or any usage caveats. Despite schema parameter descriptions, the overall context is insufficient for an agent to fully understand invocation and expected results.
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 documents all parameters. The description adds no additional parameter context beyond the schema, but does not need to; the baseline of 3 is appropriate.
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 'get' and the resource 'list of notifications', with scope 'by type from the public procurement system'. It distinguishes itself implicitly from sibling tools (detail, categories) but does not explicitly name them.
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?
No explicit when-to-use or alternative guidance. The phrase 'by type' implies a filtering use case, but there is no mention of when to prefer this over get_notification_detail or get_notification_categories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct operation: listing notifications, listing categories, and fetching a single notification by ID. There is no ambiguity between them despite all being 'get' operations.
All tool names follow the same `get_notification_*` pattern with consistent snake_case and verb-first naming. This makes the set predictable and easy to navigate.
Three tools is a lean but appropriate set for a read-only notification retrieval service. It covers the essential operations without unnecessary bloat, though it is on the smaller end of the ideal range.
The tools provide the core lifecycle for viewing notifications: list all, filter by category, get categories, and fetch details. There is no update or delete, but this appears to be a read-only public procurement notification system, so the coverage is adequate with only minor potential gaps like search or pagination.
Maintenance
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
Search Vietnam National E-Procurement System records, packages, participants, and awards.
Government tenders, awards and pre-tender pipelines from 21 official sources as MCP tools.
Search public procurement notices from 17 sources across Germany, the EU and the UK. Read-only.
Access Korea’s G2B procurement and Nara Market data for bid notices, awards, contracts, statistics…
Related MCP Servers
- FlicenseAqualityNot gradedmaintenanceEnables users to search and retrieve detailed information about Taiwan government procurement tenders through the Government Electronic Procurement System API. It supports searching tenders by keyword, category code, date, and government unit.6
- AlicenseNot gradedqualityBmaintenanceConnects AI tools to Vietnamese bid (đấu thầu) lookup service DauThau via MCP, with local key signing for security.17GPL 2.0
- FlicenseNot gradedqualityCmaintenanceEnables fetching latest news from VnExpress.net, including categories, search, and article content retrieval.
- AlicenseNot gradedqualityCmaintenanceEnables searching Korean procurement notices from the public data portal, with support for integrated search across categories, flexible date ranges, and attachment extraction.MIT
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/huydepzai121/mcp_msc'
If you have feedback or need assistance with the MCP directory API, please join our Discord server