mcp-create-declarative-agent

Skill converted from mcp-create-declarative-agent.prompt.md

INSTALLATION
npx skills add https://github.com/github/awesome-copilot --skill mcp-create-declarative-agent
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$27

Project Setup

  • Scaffold declarative agent via Agents Toolkit
  • Add MCP action pointing to MCP server
  • Select tools to import from MCP server
  • Configure authentication (OAuth 2.0 or SSO)
  • Review generated files (manifest.json, ai-plugin.json, declarativeAgent.json)

Key Files Generated

appPackage/manifest.json - Teams app manifest with plugin reference:

{

  "$schema": "https://developer.microsoft.com/json-schemas/teams/vDevPreview/MicrosoftTeams.schema.json",

  "manifestVersion": "devPreview",

  "version": "1.0.0",

  "id": "...",

  "developer": {

    "name": "...",

    "websiteUrl": "...",

    "privacyUrl": "...",

    "termsOfUseUrl": "..."

  },

  "name": {

    "short": "Agent Name",

    "full": "Full Agent Name"

  },

  "description": {

    "short": "Short description",

    "full": "Full description"

  },

  "copilotAgents": {

    "declarativeAgents": [

      {

        "id": "declarativeAgent",

        "file": "declarativeAgent.json"

      }

    ]

  }

}

appPackage/declarativeAgent.json - Agent definition:

{

  "$schema": "https://aka.ms/json-schemas/copilot/declarative-agent/v1.0/schema.json",

  "version": "v1.0",

  "name": "Agent Name",

  "description": "Agent description",

  "instructions": "You are an assistant that helps with [specific domain]. Use the available tools to [capabilities].",

  "capabilities": [

    {

      "name": "WebSearch",

      "websites": [

        {

          "url": "https://learn.microsoft.com"

        }

      ]

    },

    {

      "name": "MCP",

      "file": "ai-plugin.json"

    }

  ]

}

appPackage/ai-plugin.json - MCP plugin manifest:

{

  "schema_version": "v2.1",

  "name_for_human": "Service Name",

  "description_for_human": "Description for users",

  "description_for_model": "Description for AI model",

  "contact_email": "support@company.com",

  "namespace": "serviceName",

  "capabilities": {

    "conversation_starters": [

      {

        "text": "Example query 1"

      }

    ]

  },

  "functions": [

    {

      "name": "functionName",

      "description": "Function description",

      "capabilities": {

        "response_semantics": {

          "data_path": "$",

          "properties": {

            "title": "$.title",

            "subtitle": "$.description"

          }

        }

      }

    }

  ],

  "runtimes": [

    {

      "type": "MCP",

      "spec": {

        "url": "https://api.service.com/mcp/"

      },

      "run_for_functions": ["functionName"],

      "auth": {

        "type": "OAuthPluginVault",

        "reference_id": "${{OAUTH_REFERENCE_ID}}"

      }

    }

  ]

}

/.vscode/mcp.json - MCP server configuration:

{

  "serverUrl": "https://api.service.com/mcp/",

  "pluginFilePath": "appPackage/ai-plugin.json"

}

MCP Server Integration

Supported MCP Endpoints

The MCP server must provide:

  • Server metadata endpoint
  • Tools listing endpoint (exposes available functions)
  • Tool execution endpoint (handles function calls)

Tool Selection

When importing from MCP:

  • Fetch available tools from server
  • Select specific tools to include (for security/simplicity)
  • Tool definitions are auto-generated in ai-plugin.json

Authentication Types

OAuth 2.0 (Static Registration)

"auth": {

  "type": "OAuthPluginVault",

  "reference_id": "${{OAUTH_REFERENCE_ID}}",

  "authorization_url": "https://auth.service.com/authorize",

  "client_id": "${{CLIENT_ID}}",

  "client_secret": "${{CLIENT_SECRET}}",

  "scope": "read write"

}

Single Sign-On (SSO)

"auth": {

  "type": "SSO"

}

Response Semantics

Define Data Mapping

Use response_semantics to extract relevant fields from API responses:

"capabilities": {

  "response_semantics": {

    "data_path": "$.results",

    "properties": {

      "title": "$.name",

      "subtitle": "$.description",

      "url": "$.link"

    }

  }

}

Add Adaptive Cards (Optional)

See the mcp-create-adaptive-cards prompt for adding visual card templates.

Environment Configuration

Create .env.local or .env.dev for credentials:

OAUTH_REFERENCE_ID=your-oauth-reference-id

CLIENT_ID=your-client-id

CLIENT_SECRET=your-client-secret

Testing & Deployment

Local Testing

  • Provision agent in Agents Toolkit
  • Start debugging to sideload in Teams
  • Authenticate when prompted
  • Query the agent using natural language

Validation

  • Verify tool imports in ai-plugin.json
  • Check authentication configuration
  • Test each exposed function
  • Validate response data mapping

Best Practices

Tool Design

  • Focused functions: Each tool should do one thing well
  • Clear descriptions: Help the model understand when to use each tool
  • Minimal scoping: Only import tools the agent needs
  • Descriptive names: Use action-oriented function names

Security

  • Use OAuth 2.0 for production scenarios
  • Store secrets in environment variables
  • Validate inputs on the MCP server side
  • Limit scopes to minimum required permissions
  • Use reference IDs for OAuth registration

Instructions

  • Be specific about the agent's purpose and capabilities
  • Define behavior for both successful and error scenarios
  • Reference tools explicitly in instructions when applicable
  • Set expectations for users about what the agent can/cannot do

Performance

  • Cache responses when appropriate on MCP server
  • Batch operations where possible
  • Set timeouts for long-running operations
  • Paginate results for large datasets

Common MCP Server Examples

GitHub MCP Server

URL: https://api.githubcopilot.com/mcp/

Tools: search_repositories, search_users, get_repository

Auth: OAuth 2.0

Jira MCP Server

URL: https://your-domain.atlassian.net/mcp/

Tools: search_issues, create_issue, update_issue

Auth: OAuth 2.0

Custom Service

URL: https://api.your-service.com/mcp/

Tools: Custom tools exposed by your service

Auth: OAuth 2.0 or SSO

Workflow

Ask the user:

  • What MCP server are you integrating with (URL)?
  • What tools should be exposed to Copilot?
  • What authentication method does the server support?
  • What should the agent's primary purpose be?
  • Do you need response semantics or Adaptive Cards?

Then generate:

  • Complete appPackage/ structure (manifest.json, declarativeAgent.json, ai-plugin.json)
  • mcp.json configuration
  • .env.local template
  • Provisioning and testing instructions

Troubleshooting

MCP Server Not Responding

  • Verify server URL is correct
  • Check network connectivity
  • Validate MCP server implements required endpoints

Authentication Fails

  • Verify OAuth credentials are correct
  • Check reference ID matches registration
  • Confirm scopes are requested properly
  • Test OAuth flow independently

Tools Not Appearing

  • Ensure mcp.json points to correct server
  • Verify tools were selected during import
  • Check ai-plugin.json has correct function definitions
  • Re-fetch actions from MCP if server changed

Agent Not Understanding Queries

  • Review instructions in declarativeAgent.json
  • Check function descriptions are clear
  • Verify response_semantics extract correct data
  • Test with more specific queries
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card