Dynamics Partner Advisor

An MCP server for finding and comparing Microsoft Dynamics 365 implementation partners. Features tools to search by industry/region, get detailed partner profiles, and generate personalized shortlists for new projects.

Dynamics Partner Advisor MCP

Model Context Protocol server for Microsoft Dynamics 365 partner selection

Overview

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:

  • Searching for partners by product, location, and industry
  • Getting detailed information about specific partners
  • Receiving personalized shortlist recommendations

Available Tools

search_partners

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:

  • product (required): Product code or name. Examples: "business-central", "Business Central", "dynamics-365-sales"
  • country (required): ISO country code or country name. Examples: "US", "CA", "United States", "Canada"
  • cityOrRegion (optional): City name or state/region code. Examples: "California", "New York", "CA"
  • industry (optional): Industry code or name. Examples: "manufacturing", "Manufacturing", "professional-services"
  • min_review_score (optional): Minimum review rating (0.0-5.0). Example: 4.0
  • max_results (optional): Maximum number of results to return. Default: 3, Maximum: 5

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_partner_details

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:

  • slug (required): Partner slug or business name (kebab-case or partial match). Examples: "acme-dynamics-solutions", "acme dynamics"

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").

{ "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

recommend_shortlist

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:

  • company_size (required): One of: "small", "mid", "enterprise"
  • primary_product (required): Product code or name. Examples: "business-central", "Business Central"
  • industry (required): Industry code or name. Examples: "manufacturing", "Manufacturing"
  • region (required): Country code (e.g., "US", "CA"), country name, or "North America" (matches US, CA, MX)
  • project_type (required): One of: "new", "upgrade", "rescue", "extension"
  • complexity_level (required): One of: "simple", "moderate", "complex"

{ "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

Manifest

The MCP manifest is available at:

https://topdynamicspartners.com/.well-known/mcp.json

Integration

This MCP server uses Server-Sent Events (SSE) transport. To integrate with your MCP client:

MCP Endpoints:

  • SSE Connection: GET https://topdynamicspartners.com/api/mcp/sse
  • JSON-RPC Messages: POST https://topdynamicspartners.com/api/mcp/messages

Connection Flow

  1. Establish SSE Connection: Connect to GET https://topdynamicspartners.com/api/mcp/sse
    • Server returns a session ID in the X-Session-ID header
    • Connection remains open for bidirectional communication
  2. Send Initialize Request: Send JSON-RPC initialize message via POST to /api/mcp/messages
    • Include x-session-id header with the session ID from step 1
    • Server responds via the SSE stream
  3. Call Tools: Use JSON-RPC tools/call method to invoke tools
    • All tool calls use the same POST endpoint with session ID
    • Responses are delivered via the SSE stream

Example JSON-RPC Messages

Initialize:

{ "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 } } }

Using MCP Inspector

Test this server using the MCP Inspector:

npx @modelcontextprotocol/inspector sse https://topdynamicspartners.com/api/mcp/sse

Note: Legacy REST API endpoints are still available for backward compatibility:

  • POST https://topdynamicspartners.com/api/mcp/search_partners
  • POST https://topdynamicspartners.com/api/mcp/get_partner_details
  • POST https://topdynamicspartners.com/api/mcp/recommend_shortlist

Getting Valid Parameter Values

To 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=products

Returns: { "products": [{ "code": "business-central", "name": "Business Central", ... }] }

Get Industries:

GET https://topdynamicspartners.com/api/listings/metadata/reference?type=industries

Returns: { "industries": [{ "code": "manufacturing", "name": "Manufacturing", ... }] }

Get Services:

GET https://topdynamicspartners.com/api/listings/metadata/reference?type=services

Returns: { "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.

Response Format

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.

Testing

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 →

Security

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.

Related Servers