A Strapi plugin can be created with two main parts: admin and server, which can have multiple purposes depending on their usage. A plugin can enhance the API of an application by using its server part, or it can inject components into the admin interface without needing a specific interface in the admin itself. To create a plugin, one needs to create a folder for the plugin with certain files such as `README.md`, `admin` and `server` folders, and then use the `npx create-strapi-app` command to generate the necessary files. The generated files include various configurations, components, controllers, routes, services, and other utilities that can be customized according to the plugin's needs. A plugin can also have multiple content-types, controller actions, and routes that are useful for a specific use case.