Model Context Protocol server for Microsoft Dynamics 365 partner selection
The Dynamics Partner Advisor is a Model Context Protocol (MCP) server that provides AI agents with powerful tools to help organizations find and compare Microsoft Dynamics 365 implementation partners. This server implements the standard MCP protocol using Server-Sent Events (SSE) transport, enabling intelligent partner selection based on product expertise, industry specialization, geographic coverage, and customer reviews.
✓ Standard MCP Server: This is a fully compliant MCP server using JSON-RPC 2.0 over SSE transport. Compatible with all MCP clients including Claude Desktop, MCP Inspector, and custom implementations.
Agents can use these tools to assist users in:
Search for Microsoft Dynamics partners based on product, country, city/region, industry, and review criteria.
MCP Tool:
tools/call with name: "search_partners"Legacy REST: POST https://topdynamicspartners.com/api/mcp/search_partners (still available)
Parameters:
How to get valid values: Use GET https://topdynamicspartners.com/api/listings/metadata/reference?type=products for products,GET https://topdynamicspartners.com/api/listings/metadata/reference?type=industries for industries. See the "Getting Valid Parameter Values" section below for details.
Example JSON-RPC Call:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_partners",
"arguments": {
"product": "business-central",
"country": "US",
"cityOrRegion": "California",
"industry": "manufacturing",
"min_review_score": 4.0,
"max_results": 5
}
}
}Legacy REST: Send the arguments object directly to POST /api/mcp/search_partners
Get comprehensive details about a specific partner including products, industries, services, strengths, and use cases.
MCP Tool:
tools/call with name: "get_partner_details"Legacy REST: POST https://topdynamicspartners.com/api/mcp/get_partner_details (still available)
Parameters:
Note: The slug is matched against business names using partial matching. You can use the business name directly (e.g., "Acme Dynamics Solutions") or a slugified version (e.g., "acme-dynamics-solutions").
Example JSON-RPC Call:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_partner_details",
"arguments": {
"slug": "acme-dynamics-solutions"
}
}
}Legacy REST: Send the arguments object directly to POST /api/mcp/get_partner_details
Get personalized partner recommendations based on company size, product needs, industry, region, project type, and complexity. Returns up to 5 recommendations sorted by relevance score.
MCP Tool:
tools/call with name: "recommend_shortlist"Legacy REST: POST https://topdynamicspartners.com/api/mcp/recommend_shortlist (still available)
Parameters:
How to get valid values: Use GET https://topdynamicspartners.com/api/listings/metadata/reference?type=products for products,GET https://topdynamicspartners.com/api/listings/metadata/reference?type=industries for industries. See the "Getting Valid Parameter Values" section below for details.
Example JSON-RPC Call:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "recommend_shortlist",
"arguments": {
"company_size": "mid",
"primary_product": "business-central",
"industry": "manufacturing",
"region": "US",
"project_type": "new",
"complexity_level": "moderate"
}
}
}Legacy REST: Send the arguments object directly to POST /api/mcp/recommend_shortlist
The MCP manifest is available at:
This MCP server uses Server-Sent Events (SSE) transport. To integrate with your MCP client:
MCP Endpoints:
GET https://topdynamicspartners.com/api/mcp/ssePOST https://topdynamicspartners.com/api/mcp/messagesGET https://topdynamicspartners.com/api/mcp/sseX-Session-ID headerinitialize message via POST to /api/mcp/messagesx-session-id header with the session ID from step 1tools/call method to invoke toolsInitialize:
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "my-client",
"version": "1.0.0"
}
}
}List Tools:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}Call Tool:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "search_partners",
"arguments": {
"product": "business-central",
"country": "US",
"max_results": 5
}
}
}Test this server using the MCP Inspector:
npx @modelcontextprotocol/inspector sse https://topdynamicspartners.com/api/mcp/sseNote: Legacy REST API endpoints are still available for backward compatibility:
POST https://topdynamicspartners.com/api/mcp/search_partnersPOST https://topdynamicspartners.com/api/mcp/get_partner_detailsPOST https://topdynamicspartners.com/api/mcp/recommend_shortlistTo get the current list of valid values for products, industries, and services, use the reference data API:
Get Products:
GET https://topdynamicspartners.com/api/listings/metadata/reference?type=productsReturns: { "products": [{ "code": "business-central", "name": "Business Central", ... }] }
Get Industries:
GET https://topdynamicspartners.com/api/listings/metadata/reference?type=industriesReturns: { "industries": [{ "code": "manufacturing", "name": "Manufacturing", ... }] }
Get Services:
GET https://topdynamicspartners.com/api/listings/metadata/reference?type=servicesReturns: { "services": [{ "code": "erp-implementation", "name": "ERP Implementation", ... }] }
Note: These endpoints return the current list of valid codes and names. You can use either the code or name field values in your API requests. The reference data may change over time, so it's recommended to fetch it periodically or cache it appropriately.
The MCP server uses JSON-RPC 2.0 protocol. All responses are sent via the SSE stream in the following format:
Success Response:
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [
{
"type": "text",
"text": "{\"partners\": [...]}"
}
]
}
}Error Response:
{
"jsonrpc": "2.0",
"id": 3,
"error": {
"code": -32603,
"message": "Internal error",
"data": "Product \"invalid\" not found"
}
}Note: Tool results are returned as JSON strings within the content array. Parse the text field to access the actual data.
You can test the MCP server using our interactive test page. The test page allows you to try all three tools and see the JSON-RPC requests and responses in real-time.
Test the MCP Server:
Open Test Page →This MCP server uses Supabase service role access to query the partner database. All endpoints are publicly accessible but rate-limited. No authentication is required for read operations.
Note: This server only provides read access to partner data. No write operations are available through these endpoints.