GlobalSource Partners MCP Server
Server Details
Search expert emerging-markets research on economics, politics, policy and sovereign risk.
- Status
- Healthy
- Uptime
- 99.9% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct resource and action: read author, read post, search entities, search posts. Descriptions clearly define when to use each, and the search vs. read boundary is unambiguous.
All tool names follow a consistent snake_case verb_noun pattern with the 'research' domain prefix: read_research_author, read_research_post, search_research_entities, search_research_posts. No style mixing.
With only 4 tools, the set is tightly scoped for reading and searching research authors and posts. It is within the ideal 3–15 range and avoids unnecessary tool sprawl.
The core workflow of entity discovery → post search → post/author retrieval is fully covered. Minor gaps exist (no browse-all posts or author search), but they do not block the primary use case.
Available Tools
4 toolsread_research_authorARead-onlyIdempotentInspect
Read a single research author by author UUID.
Use this tool when a user wants profile details for a specific research author returned by another research tool.
The response includes author metadata, biography fields, profile URL, and visible sectors associated with the author.
Missing, inactive, non-author, and hidden-sector-only authors return a generic not-found error.
| Name | Required | Description | Default |
|---|---|---|---|
| author_uuid | Yes | The stable UUID of the research author to read. Use an author_uuid returned by another research tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| author_name | Yes | The display name of the research author. |
| author_uuid | Yes | The stable UUID of the research author. |
| author_sectors | Yes | The visible sectors associated with this research author. |
| author_profile_url | Yes | The URL where this research author's profile can be viewed. |
| author_biography_html | Yes | The research author's biography as HTML, if available. |
| author_short_biography | Yes | A short biography or role summary for the research author, if available. |
TDQS
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 valuable context beyond this by listing response contents (metadata, biography, profile URL, visible sectors) and disclosing the generic not-found error for missing/inactive/non-author/hidden-sector cases. No contradiction with 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?
Four short, purposeful sentences with no redundancy. The first sentence states the core action, the second gives usage context, the third summarizes the response, and the fourth covers error behavior.
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 a rich output schema, so return values need not be fully spelled out. The description ably covers key output categories and error conditions, and the single parameter is fully documented in the schema. With strong annotations, this is complete for the tool's complexity.
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 is 100%, with the parameter description already explaining that author_uuid is a stable UUID from another research tool. The tool description reinforces this but adds no new semantics or format details beyond the schema, so baseline 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 opens with a specific verb+resource: 'Read a single research author by author UUID.' This clearly distinguishes it from sibling tools that read posts or search entities.
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: 'when a user wants profile details for a specific research author returned by another research tool.' This also implies the author_uuid comes from a sibling tool, providing clear context and an implicit exclusion of search tools for already-known UUIDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_research_postARead-onlyIdempotentInspect
Read a single published research post by post UUID.
Use this tool after calling search_research_posts and selecting the most relevant result.
The response includes post metadata, authors, sectors, body HTML, and a URL. Depending on the authenticated MCP user's permissions, the body HTML and URL may expose either the full research post or teaser content.
Missing, unpublished, and hidden-sector posts return a generic not-found error.
| Name | Required | Description | Default |
|---|---|---|---|
| post_uuid | Yes | The stable UUID of the research post to read. Use a post_uuid returned by search_research_posts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| post_url | Yes | The URL where this research post can be viewed. This may be a full post URL or teaser URL depending on the MCP user's permissions. |
| post_type | Yes | The type of research post, e.g., 'Report', 'In Brief', 'Presentation', etc. |
| post_uuid | Yes | The stable UUID of the research post. |
| post_title | Yes | The title of the research post. |
| post_authors | Yes | The authors of this research post. |
| post_sectors | Yes | The sectors associated with this research post. Only clients who are permissioned for these sectors can access the full version of this post; other clients will receive teaser content. |
| post_updated | Yes | The most recent update timestamp of the research post in ISO 8601 format. |
| post_body_html | Yes | The HTML body available for this research post. This may be full post content or teaser content depending on the MCP user's permissions. |
| post_published | Yes | The publication timestamp of the research post in ISO 8601 format. |
| post_snippet_notice | Yes | A notice shown when the returned body contains only teaser or snippet content instead of the full research post. Null when the MCP user can view the full post. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, but the description adds valuable behavioral detail: response contents (metadata, authors, sectors, body HTML, URL), permission-dependent teaser vs full content, and generic not-found error for missing/unpublished/hidden-sector posts. This goes beyond what annotations convey.
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?
Three short paragraphs, front-loaded with purpose, followed by usage flow, response summary, permission caveat, and error behavior. Every sentence contributes meaning without redundancy or fluff.
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 one-parameter read tool, the description covers the full context: how to select the UUID, what the response will contain, permission-based limitations, and error handling. No significant gaps remain.
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 only parameter post_uuid is fully described in the schema with the same guidance (use UUID from search_research_posts). The description adds no new semantic detail beyond repeating the schema. Baseline 3 for 100% 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 opens with 'Read a single published research post by post UUID', which clearly specifies the verb, resource, and scope. It distinguishes from sibling tools by explicitly referencing search_research_posts and focusing solely on reading a post rather than authors or entities.
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?
Provides explicit when-to-use guidance: 'Use this tool after calling search_research_posts and selecting the most relevant result.' This directs the agent to a specific workflow and implies it is not for searching. Strongly differentiated from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_research_entitiesARead-onlyIdempotentInspect
Search research entities by name or approximate name.
Use this tool whenever a user refers to an entity by name and a research entity UUID is needed.
Results are ranked by match quality and include the research entity UUIDs required by other research tools.
When multiple results are returned, review the entity name, description, match type, match confidence, and available research count to determine the most appropriate entity before using its entity_uuid in another tool.
This tool only searches existing research entities and does not create or modify data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return. Minimum 1, maximum 50, default 10. | |
| query | Yes | The entity name or approximate entity reference to search for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | The maximum number of matching research entities requested. |
| results | Yes | The matching research entities, ordered by match confidence. |
| queried_name | Yes | The normalized version of the query used to search for research entities. |
| total_results_count | Yes | The total number of matching research entities found before applying the result limit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds value by explaining that results are ranked by match quality and include contextual fields, and reinforces that the tool does not modify data. This goes beyond the annotation hints without contradicting them.
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 structured into clear segments: main action, usage trigger, result format, and selection guidance. While slightly verbose, every sentence contributes useful context. It could be tightened by removing the redundant 'does not create or modify data' line, but it remains appropriately sized.
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 an output schema, so return values are covered. The description covers when to use it, what results look like, and how to choose the best match. It lacks details about default limit behavior, but that is in the schema. Overall, it gives enough context for correct use.
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?
Input schema provides 100% parameter descriptions, so baseline is 3. The description adds minimal extra parameter semantics, only implying that 'query' supports approximate names. It does not elaborate on 'limit' beyond 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's purpose: search research entities by name or approximate name. It distinguishes itself from siblings like search_research_posts by focusing on entities broadly, and specifies that it returns UUIDs needed by other research tools.
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 explicit guidance on when to use the tool ('whenever a user refers to an entity by name and a research entity UUID is needed') and gives detailed instructions on how to select the correct result from multiple matches. No exclusions are needed given the clear use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_research_postsARead-onlyIdempotentInspect
Search published research posts associated with one or more research entities.
This tool requires research entity UUIDs. If only entity names are known, first call search_research_entities to obtain candidate research entities and their UUIDs.
Use only entity_uuid values copied exactly from search_research_entities results. Never infer, guess, construct, or transform UUIDs from entity names.
Use this tool only after selecting the most appropriate research entity from the search_research_entities results.
Examples:
To find research about "United States", first call search_research_entities with "United States", review the returned matches, select the most appropriate entity, and then call this tool with the selected entity_uuid.
To find recent research about multiple entities, pass all selected entity_uuid values in research_entity_uuids.
To retrieve the next page of results, pass the previous response's next_cursor as cursor.
Results can be filtered by publication date and retrieved using cursor-based pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of posts to return. Minimum 1, maximum 50, default 25. | |
| order | No | Sort results by publication time. Use 'published_descending' for newest first or 'published_ascending' for oldest first. Default is published_descending. | |
| cursor | No | Pagination cursor returned by a previous response. Use this to retrieve the next page of results. | |
| published_after | No | Only return posts published after this timestamp. Provide a complete RFC 3339 timestamp including a timezone, for example 2026-08-01T00:00:00Z. Date-only values such as 2026-08-01 are not accepted. | |
| published_before | No | Only return posts published before this timestamp. Provide a complete RFC 3339 timestamp including a timezone, for example 2026-08-01T00:00:00Z. Date-only values such as 2026-08-01 are not accepted. | |
| count_total_results | No | Whether to include the total number of matching posts. Use false unless the total count is specifically needed. Calculating the total count may increase response time for large result sets. | |
| research_entity_uuids | Yes | One or more research entity UUIDs to search against. This field is required. At least one research entity UUID must be supplied. Do not pass entity names. If the user provides entity names rather than UUIDs, first call the "search_research_entities" tool and use the returned UUIDs from that tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | The maximum number of research posts requested. |
| order | Yes | The sort order applied to the results. |
| results | Yes | The research posts matching the supplied research entities and filters, ordered according to the requested sort order. |
| next_cursor | Yes | An opaque pagination cursor. Supply this value in a subsequent request to retrieve the next page of results. Clients should not attempt to interpret or modify the cursor value. If this field is null, there are no additional pages of results. |
| published_after | Yes | The effective lower publication timestamp used for the search. If no lower publication date filter was supplied, this defaults to the earliest date from which research is available. |
| published_before | Yes | The effective upper publication timestamp used for the search. If no upper publication date filter was supplied, this defaults to the current date and time. |
| research_entities | Yes | The research entities used to filter the search results. |
| total_results_count | Yes | The total number of matching research posts before pagination was applied. Returned only when count_total_results was requested with true; otherwise null. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and non-destructive behavior. The description adds valuable behavioral context beyond annotations: it requires exact UUID values, forbids inference or transformation, and clarifies that results come from the selected research entities. This is meaningful added transparency even though annotations carry the safety profile.
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 longer than average but well-structured with a clear opening statement, workflow prerequisites, and concrete examples. Some redundancy exists (e.g., the required-field guidance is repeated in both description and schema), but every section earns its place by addressing a distinct operational concern.
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 that an output schema exists and all 7 parameters are documented, the description covers all necessary operational context: prerequisite entity lookup, exact UUID usage, filtering, ordering, and cursor-based pagination. An agent has everything needed to invoke the tool correctly.
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 is 100%, so the baseline is 3. The description adds operational meaning beyond the schema by explaining the required workflow around research_entity_uuids, explicitly describing cursor reuse for next-page requests, and showing how filters and pagination fit together. This elevates it above the baseline.
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 a specific action ('Search published research posts') with a clear resource scope ('associated with one or more research entities'). It clearly differentiates from sibling tools like search_research_entities (searches for entities, not posts) and read_research_post (reads a single post).
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 gives explicit when-to-use guidance: require entity UUIDs, first call search_research_entities if only names are known, select the most appropriate entity, and never guess or transform UUIDs. It also provides examples covering multiple entities and pagination, making the intended workflow unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
search_research_posts4 fields changed- changed
Input schema / properties / published_after / descriptionPrevious value: -"Only return posts published after this date and time (ISO 8601 format)."New value: +"Only return posts published after this timestamp. Provide a complete RFC 3339 timestamp including a timezone, for example 2026-08-01T00:00:00Z. Date-only values such as 2026-08-01 are not accepted." - added
Input schema / properties / published_after / formatAdded value: +"date-time" - changed
Input schema / properties / published_before / descriptionPrevious value: -"Only return posts published before this date and time (ISO 8601 format)."New value: +"Only return posts published before this timestamp. Provide a complete RFC 3339 timestamp including a timezone, for example 2026-08-01T00:00:00Z. Date-only values such as 2026-08-01 are not accepted." - added
Input schema / properties / published_before / formatAdded value: +"date-time"
4 tool updates
- First observed
read_research_author - First observed
read_research_post - First observed
search_research_entities - First observed
search_research_posts
Related MCP Connectors
Daily sovereign-credibility and macro scores for 169 emerging markets, built on free public data.
Live geopolitical and markets intelligence wire: 35k+ wire items, event threads, 55k+ articles.
Economic reports for 20 economies, 2015-2025. Search free, pay per fetch in USDC on Base via x402.
Financial search, tearsheets, screens and monitors, grounded in news, filings and transcripts.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables search and retrieval of industry research reports, including company research, macro strategy, and thematic reports, with filtering and detail lookup via natural language.1-

mcp-octagonofficial
AlicenseBqualityCmaintenanceDeliver real-time investment research with extensive private and public market data.3192 npm148MIT- AlicenseNot gradedqualityCmaintenanceAgent-ready economic, market & geo-health intelligence — 163 MCP tools, 155 driver-backed indices.MIT
- FlicenseNot gradedqualityCmaintenanceProvides AI agents with geopolitical risk intelligence, calibrated forecasts, sanctions and trade-control data, and live maritime chokepoint traffic across 60 countries, with source-linked answers.-
Glama MCP Gateway
Add one secure layer between your agents and this server.