Custom Plugin
Overview
MeDo’s official plugins cover a wide range of scenarios, including AI tools, payment services, video technologies, speech and image processing, text processing, mapping services, information search, login authentication, and more—helping you quickly build feature-rich applications.However, in real-world development, many vertical or highly customized business needs still cannot be fully addressed by official plugins alone. To solve this, MeDo offers a Custom Plugin capability that allows you to rapidly integrate any required third-party APIs. By simply providing the API specifications, a plugin can be automatically generated and used directly within your application.With this capability, your application becomes more extensible, enabling you to flexibly incorporate diverse external services and build solutions that more efficiently meet your unique requirements.
Create custom plugin
Plugins Please enter 【 Plugins>Create Plugin 】 through the following path
Provide API documentation or URL
Please paste accurate and detailed API documentation into the input field. If an API key is required, please include it as well and provide a note. You may refer to the following format:
| Input Example | Legend |
|---|---|
| I want to create a weather query plugin.Plugin Name: Weather QueryPlugin Description: Retrieve real-time weather information, including temperature, humidity, and weather conditions, based on the city name.Request Method: GETFull request** URL:https://api.example.com/v1/weather?city=Beijing&unit=CRequest Header**:Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.FAKE_PAYLOAD.SIGNATURE_FAKERequest Parameters**:city:Required. The name of the city, e.g., Beijing.unit:Optional. Temperature unit, C or F. Default is C.Request Example (curl)**:curl -X GET "https://api.example.com/v1/weather?city=Beijing&unit=C" -H "Authorization: Bearer YOUR_API_KEY" successResponse Example**:{"city": "Beijing","temperature": 18,"unit": "C","condition": "Cloudy","humidity": 62}Error Response Example**:{"error": "invalid_city","message": "City not found"}Error Code List**:**invalid_city: City does not exist (HTTP 404)missing_city: Missing city parameter (HTTP 400)invalid_unit: Invalid temperature unit (HTTP 400)unauthorized: Authentication failed (HTTP 401)rate_limited: Too many requests (HTTP 429)server_error: Server error (HTTP 500) |
Usage Tips
Whether the generated plugin is usable depends on how accurate and complete the information you provide is. The more detailed and accurate your API information is, the easier it is for Medo to generate a workable plugin for you. You can refer to the following template format:
Please help me create a plugin with the following details:
- Plugin Name:
- Plugin Description:
- Request URL:
- Authentication Method:
- Request Description:
- Request Parameters:
- Request Example:
- Response Parameters:
- Response Example:
- Error Codes:
After completing the input, click AI Parse. Medo will analyze and configure the plugin based on the API information you provided. The process may take about one minute. Please do not exit during the generation process.
If the parsing is successful, the plugin configuration will be displayed on the screen (see Section 2.2 for details). If the parsing fails, Medo will stop the process and inform you of the reason.
2.2. Modify Configuration
After the parsing is successful, the interface will display the plugin configuration.
2.2.1. Basic Information
Medo will automatically configure the plugin icon, plugin name, and plugin description based on the API information you provide.
| Configuration Item | Description | Legend |
|---|---|---|
| Icon | The icon of the plugin. After configuration, it will be displayed in Plugins– My Plugins, Plugin Selection List, and the In-App Used Plugins list. | |
| Name | The name of the plugin. After configuration, it will be shown in Plugins– My Plugins, Plugin Selection List, and the In-App Used Plugins list. | |
| Description | The description of the plugin. After configuration, it will be displayed in Plugins– My Plugins, Plugin Selection List, and the In-App Used Plugins list. |
API Key
The API Key is the credential used to access your API. Medo will automatically detect and add the required API Key based on the API information you provide.
| Content | Description | Legend |
|---|---|---|
| Secret Name | Secret Name is the environment variable used for plugin authentication and will be referenced in the plugin definition. This value is automatically generated by Miaoda during parsing and cannot be modified. | |
| Secret Value | Secret Value is the key corresponding to the Secret Name. If configured, this key will be used by default within the application. If not configured, you will need to manually provide it when invoking the plugin inside the application. |
Plugin Definition
The plugin definition serves as an essential basis for Medo to integrate this plugin into the application. This content is automatically generated by parsing the API information you provide and cannot be modified. After it is generated, you can review the API-related details to ensure they meet your expectations, including whether all required endpoints are included and whether the interface descriptions and examples are complete. If anything does not meet your requirements, you may refine the original content in the input field at the top and regenerate the definition.
Complete Creation
After all information has been configured, click Create to finish creating the plugin.
Using Custom Plugin
Testing Plugin
After creation, you can test the plugin within your app. Use the “@” symbol to view your created custom plugins and invoke them for testing.
Testing Whether the Custom Plugin Can Be Invoked Correctly
After generating an app or feature using a plugin, you can check whether the plugin is in use by clicking the “Used Plugins” list in the left sidebar.
| S**ituation** | Description | Legend |
|---|---|---|
| In Use | If it is in use, it will appear in the “Used Plugins” list, and you can proceed to the next step of usability testing. | |
| Not in Use | If it is not in use, try invoking the plugin again to generate a feature or app. If you still cannot successfully invoke it, return to the plugin configuration page. Check whether the names and descriptions of each interface in the plugin definition match the scenarios the plugin is intended for. If they do not, update the usage scenarios and related descriptions in the top input box based on the original content, then re-parse to regenerate the plugin definition. |
Testing the Usability of the Custom Plugin
If the custom plugin can be invoked correctly, the next step is to test the usability of the features generated with it. For example, if you have created a custom plugin for nationwide fuel price queries, you should test whether the related feature can actually retrieve fuel prices.
| S**ituation** | Description | Legend |
|---|---|---|
| The feature works as expected. | This indicates that you have successfully created a usable custom plugin, and you can now use it across all of your apps. | / |
| The feature does not work as expected. | This situation may be caused by an incorrect key or an issue with the generated output. First, verify that the key you provided is correct. If the feature still does not work after confirmation, try fixing it through conversation. If the issue can be resolved through conversation, it means your custom plugin is usable.If multiple rounds of conversation still cannot fix the issue, the problem may lie in the custom plugin itself. Please return to the plugin’s custom configuration and check whether the API specification is complete — including interface definitions, endpoint paths and request methods, request parameters, request examples, response examples, error codes, and explanations. If anything is missing or inaccurate, update the description in the input box at the top and regenerate the configuration. |
Official Use
Once a plugin passes testing, you can officially use it in your apps. However, please note that actual usage may still be affected by various factors—for example, unclear requirement descriptions may cause the plugin-generated feature to fall short of a fully reliable result on the first attempt. Therefore, even if testing is successful, plugin-related features may still encounter issues. If this happens, you can resolve the problem through additional conversation-based adjustments.
Managing Custom Plugins
You can manage the plugins you created under “Plugins > My Plugins > Target Plugin,” including configuring and deleting plugins.
After deleting a plugin in “Plugins – My Plugins,” you will no longer be able to use it to generate new apps or features. However, existing apps that already use this plugin will not be affected. If you want those apps to stop using the plugin as well, please go to each corresponding app and remove the plugin there. After removal, the app will no longer use the plugin.
Note: In the current version, a removed custom plugin will still appear in the “Used in App” list. However, it has in fact been removed and will not affect the app’s operation. You can safely ignore the removed custom plugin.
