contract-compass
Server Details
Korean public procurement law: rule-engine rulings, statutes search, live court precedents
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- kwenhwang/contract-compass
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 6 of 6 tools scored.
Each tool targets a distinct resource and operation: contract method determination, case retrieval, law article retrieval, case search, law search, and reference search. No two tools have overlapping purposes; descriptions clearly differentiate them.
Tool names follow a verb_noun pattern (decide_contract_method, get_case, get_law_article, search_cases, search_law, search_references) with three distinct verbs (decide, get, search). The pattern is consistent within each verb group, though having multiple verbs is acceptable.
Six tools is well-scoped for a legal reference server covering contract method determination, law/case/reference search, and full-text retrieval. Each tool serves a necessary function without redundancy.
Core operations are covered: search and retrieve laws, cases, and references, plus a specialized decision tool. A minor gap is the lack of a dedicated full-text retrieval for references (only snippets from search_references), but agents can work around it.
Available Tools
6 toolsdecide_contract_methodARead-onlyIdempotentInspect
계약방법 결정론 판정 — 룰엔진이 적용 가능한 계약방법 후보와 법령 근거를 반환.
Args:
contract_type: "construction"(공사) | "service"(용역) | "product"(물품)
estimated_price: 추정가격(원)
org_type: "national"(국가기관) | "local"(지자체) | "public_corp"(공기업·준정부, 기본)
service_type: 용역일 때 "technical"|"academic"|"facility"|"it_service"|"other"
construction_specialty: 공사일 때 "general"(종합)|"electrical"|"ict"|"fire_safety" 등
is_sme_competition_product: 중소기업자간 경쟁제품 여부
negotiation_reason: 수의 사유 "urgent"|"rebid_failure"|"technical_difficulty"|
"patent_new_tech"|"specific_person"|"small_repeat"|"other_justified"
| Name | Required | Description | Default |
|---|---|---|---|
| org_type | No | public_corp | |
| project_name | No | MCP 조회 | |
| service_type | No | ||
| contract_type | Yes | ||
| estimated_price | Yes | ||
| negotiation_reason | No | ||
| construction_specialty | No | ||
| is_sme_competition_product | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, and non-destructive behavior. The description adds that it returns candidates and legal basis, but does not disclose additional behavioral traits beyond what annotations provide. No contradiction.
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 front-loaded with purpose and includes an Args block. It is mostly concise but the parameter list is lengthy; minor room for structural improvement.
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 complexity (8 parameters, no output schema), the description covers all parameters with examples and explains the return value. It is complete for the tool's purpose.
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 0%, but the tool description lists all 8 parameters with Korean meanings and enum hints, significantly compensating. It adds full semantic value for each parameter beyond the raw schema.
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: determining contract method decision theory using a rule engine, returning candidates and legal basis. It uses specific verbs and resources, and distinguishes from sibling tools which focus on retrieving laws or cases.
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 listing parameters and their contexts, but does not explicitly state when to use this tool versus alternatives. No guidance on when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_caseARead-onlyIdempotentInspect
판례/해석례 본문 조회 — 판시사항·판결요지·참조조문(판례) 또는 질의요지·회답·이유(해석례).
Args:
kind: "prec" | "expc" (search_cases 결과의 kind)
case_id: search_cases 결과의 case_id
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| case_id | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive. The description adds value by specifying the allowed values for kind ('prec' | 'expc') and listing the content components returned. It does not mention rate limits or authentication, but for a read-only tool with strong annotations, this is sufficient.
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 very concise: one sentence defining the purpose, a Korean explanation of the content, and a clear Args list. Every sentence adds value, and the structure is front-loaded with the main purpose. No wasted words.
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 simplicity and the strong annotations, the description is largely complete. It explains parameters (including values and source), purpose, and retrieved content. However, it does not describe the output format or structure (no output schema), which would be helpful for an agent to parse the result. The Korean terms may require localization understanding.
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 input schema has 0% description coverage, so the description must compensate. It does so fully by explaining that both kind and case_id come from search_cases results, and explicitly lists the allowed values for kind. This provides essential meaning missing from the schema.
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 the full text of Korean precedents/interpretations, listing specific components (판시사항, 판결요지, etc.). It distinguishes from sibling tools like search_cases (which returns a list) and get_law_article (which retrieves law articles). The verb '조회' and resource are well-defined.
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 explicitly states that both arguments come from the results of search_cases, providing contextual usage guidance. It implies the tool is the next step after searching, but does not explicitly state when not to use it or list alternatives. However, with sibling tools named differently, the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_law_articleARead-onlyIdempotentInspect
법령 조문 원문 전체 조회.
Args:
ref: 정확한 조문 참조 (예: "국가계약법 시행령 제26조")
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it retrieves full text ('전체 조회'), providing marginal extra context beyond annotations.
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 extremely concise with a one-line purpose and a single example. Every sentence is necessary and front-loaded, achieving maximum information density.
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 simplicity (one required string parameter, no output schema), the description covers the core function and usage. However, it could briefly mention the response format (e.g., returns the full article text) for full completeness.
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 0% schema description coverage, the description compensates by giving an explicit example format for the 'ref' parameter, adding meaning beyond the schema's bare 'Ref' title.
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 '법령 조문 원문 전체 조회' (query full text of a legal provision), specifying the verb and resource. It differentiates from sibling tools like search_law (search) and get_case (case retrieval).
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 an explicit usage example for the 'ref' parameter ('국가계약법 시행령 제26조'), guiding the agent to use precise references. While it doesn't explicitly state alternatives, the context of sibling tools implies when to use this vs. search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_casesARead-onlyIdempotentInspect
판례·법령해석례 검색 — law.go.kr 실시간 조회(항상 현행). LLM 미사용.
분쟁·처분취소·해석 다툼("~해도 되나", "~취소될 수 있나")에 조문만으로 부족할 때
쓰라. 본문은 get_case(kind, case_id)로 이어서 조회.
Args:
query: 핵심 명사 위주 검색어 (예: "부정당업자 제한", "유찰 수의계약")
top_k: 종류당 반환 건수 (기본 5, 최대 10)
kind: "prec"(법원 판례) | "expc"(법제처 법령해석례) | "all"(둘 다, 기본)
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | all | |
| query | Yes | ||
| top_k | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint. The description adds '실시간 조회(항상 현행)' indicating real-time and always current data, and 'LLM 미사용' (no LLM used). This goes beyond annotations by clarifying timeliness and data source. No contradictions.
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: a one-line header, one-line usage context, and a structured Args section. Every sentence is informative and well-organized, with no 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?
No output schema exists, and the description does not detail the return format (e.g., fields like case ID, title, date). However, it advises using get_case for full text, partially addressing output. For a search tool with three parameters, this gap is noticeable but not critical.
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 0%, but the 'Args:' section thoroughly explains each parameter: query (핵심 명사 위주 검색어 with examples), top_k (종류당 반환 건수, 기본 5, 최대 10), kind (prec/expc/all). This provides essential meaning beyond the bare-bones schema.
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 states '판례·법령해석례 검색 — law.go.kr 실시간 조회(항상 현행). LLM 미사용.' which clearly identifies the tool as searching court precedents and statutory interpretations from law.go.kr in real-time. It distinguishes itself from siblings by noting that full text should be retrieved via get_case, and specifies usage when statutes alone are insufficient.
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?
Explicitly states when to use: '분쟁·처분취소·해석 다툼...에 조문만으로 부족할 때 쓰라.' (disputes where statutes are insufficient). It provides query examples and notes follow-up with get_case. However, it does not explicitly contrast with sibling tools like search_law or search_references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_lawARead-onlyIdempotentInspect
법령 조문 검색 — 키워드 또는 조문번호로 조문 스니펫 반환(상위 top_k건).
전문이 필요하면 get_law_article(ref)로 이어서 조회.
Args:
query: "수의계약", "시행령 제26조", "제21조" 등
top_k: 반환 건수 (기본 8, 최대 20)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint as false, so the safety profile is clear. The description adds behavioral context: returns snippet results and recommends get_law_article for full text. No contradictions. Additional details like rate limits are absent but not critical given annotations.
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 three concise sentences plus two parameter explanations. Every sentence adds value, with the most important information (purpose and key sibling reference) front-loaded. No extraneous words.
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 two parameters, no output schema, and annotations, the description covers the core functionality and key usage note (full text via sibling). It could mention output format or error handling, but for a simple search tool, it is adequately complete.
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 0%, but the description compensates by explaining query with examples (e.g., '수의계약', '시행령 제26조') and top_k with default (8) and max (20). This adds significant meaning beyond the bare schema.
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 law articles by keyword or article number, returning snippets (top k), and distinguishes from sibling get_law_article by noting that for full text, that tool should be used. The purpose is specific and 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 explicitly states when to use the tool (keyword/article number search) and provides an alternative for full text (get_law_article). It does not explicitly list when not to use, but the context and sibling names imply exclusions. Guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_referencesARead-onlyIdempotentInspect
전 코퍼스 통합 검색 — 법령+계약예규+조달청·행안부 세부기준+실무가이드. LLM 미사용.
search_law가 법령 조문 전용인 것과 달리 예규·적격심사 세부기준·실무가이드까지
검색한다. 낙찰하한율·적격심사 배점·실무 절차 등 법령 본문 밖 질문에 사용하라.
AI 생성 없이 검색 근거 원문만 반환한다(백엔드 LLM 예산 미차감).
Args:
query: 자연어 검색어 (예: "적격심사 낙찰하한율 50억 미만")
top_k: 반환 건수 (기본 6, 최대 12)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent. Description adds that no LLM is used and only source text is returned, including backend budget implications. No contradictions.
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?
Well-organized: header, purpose, usage, args. Front-loaded with key info. Slightly verbose but each sentence adds value. Could be a bit more terse.
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?
Covers scope, differentiation from sibling, output nature (source text only), and key constraints. No output schema, but description adequately sets expectations. Could mention return structure.
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 coverage 0% so description must compensate. Provides example for query and notes default and max for top_k. But lacks detailed format or operators for query. Some value added but incomplete.
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?
Description clearly states it searches across multiple reference types (laws, contracts, standards) and explicitly contrasts with search_law. Uses specific verb+resource (integrated search of corpus) and distinguishes from sibling tool.
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?
Explicitly advises when to use: for questions outside law text (e.g., bid rates, evaluation scores). Contrasts with search_law. Provides example query. Could explicitly state when not to use, but the contrast implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!