)]}'
{
  "log": [
    {
      "commit": "c3cf0b2e878b37096de2ee6de3c7099874ccf82a",
      "tree": "2d3c13c170a59012705cc26a5c8b3df01ffe8b7a",
      "parents": [
        "d5ef0c55288440b023d1c5d3f833cb599d8d3070"
      ],
      "author": {
        "name": "StevenLuMT",
        "email": "lushiji@apache.org",
        "time": "Wed Nov 12 19:17:35 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 12 19:17:35 2025 +0800"
      },
      "message": "Upgrade Pulsar version to 4.1.1 (#23)\n\nUpgrade Pulsar version to 4.1.1\nMain features include:\n\nPIP-415 is very useful,a new API to get the message id by offset(https://lists.apache.org/thread/j9vxmmsw1r85l27v3rgp9tcnllk48wyb)"
    },
    {
      "commit": "d5ef0c55288440b023d1c5d3f833cb599d8d3070",
      "tree": "d3b5978775e0583528366f6dbab30f08e3c0fd3e",
      "parents": [
        "ca38b9885ad79d8439bcf9094e9c30dba293f035"
      ],
      "author": {
        "name": "StevenLuMT",
        "email": "lushiji@apache.org",
        "time": "Mon Nov 03 15:57:44 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 03 15:57:44 2025 +0800"
      },
      "message": "[fix] Maintain consistency with Pulsar\u0027s coding style (#21)\n\n"
    },
    {
      "commit": "ca38b9885ad79d8439bcf9094e9c30dba293f035",
      "tree": "8ddc090fb9b3573428a971d3a27d9b6bd9b70150",
      "parents": [
        "f45ee4607dacd80ede21e594244becca078b5b4c"
      ],
      "author": {
        "name": "StevenLuMT",
        "email": "lushiji@apache.org",
        "time": "Mon Nov 03 11:32:54 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 03 11:32:54 2025 +0800"
      },
      "message": "[fix] Formatting code(mvn spotless:apply) (#20)\n\n* [fix] Formatting code(mvn spotless:apply)\n\n* [fix] change checkstyle.xml"
    },
    {
      "commit": "f45ee4607dacd80ede21e594244becca078b5b4c",
      "tree": "e61ac387b980b4090e3c76e8340c07c9523a03f5",
      "parents": [
        "78da1653763410ce2f6a471c39844f4c84fd1ef1"
      ],
      "author": {
        "name": "Zhianii",
        "email": "1433288571@qq.com",
        "time": "Fri Oct 31 17:52:29 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 31 17:52:29 2025 +0800"
      },
      "message": "Add Pulsar Admin MCP server implementation with HTTP/STDIO transport and 70 tool commands (#17)\n\nFixes #PCIP-6 Implement the MCP for Pulsar Admin Tool\nMain Issue: #PCIP-6 Implement the MCP for Pulsar Admin Tool\n\n### Motivation\n\nThis PR introduces the **MCP (Model Context Protocol) server implementation** for Pulsar Admin operations.  \nThe motivation is to enable **AI assistants** (such as Claude Desktop) to interact with Apache Pulsar clusters using natural language.  \nThrough MCP, Pulsar administration capabilities are exposed via a standardized protocol, improving automation and intelligent integration.  \n\n### Modifications\n\n- Added **MCP server layer**: `StdioMCPServer` and `HttpMCPServer`, supporting **STDIO** and **HTTP Streaming** transports  \n- Implemented **PulsarClientManager** to manage the lifecycle of `PulsarAdmin` and `PulsarClient`, with lazy initialization and thread safety  \n- Developed **70 MCP tool commands**, covering:\n  - Cluster / Tenant / Namespace / Topic / Subscription management\n  - Schema operations\n  - Monitoring and backlog analysis\n  - Message send and receive\n- Introduced **BasePulsarTools** base class for parameter validation, error handling, and response encapsulation  \n- Enhanced documentation with **Quick Start, FAQ, and natural language interaction demos** (README)\n\n### Verifying this change\n\n- Verified in local Standalone Pulsar environment (`pulsar://localhost:6650`, `http://localhost:8080`)  \n- Tested both transport modes:\n  - **STDIO mode**: Successfully integrated with Claude Desktop\n  - **HTTP mode**: Server responded correctly at `/mcp`\n- Example validation:\n  - Successfully executed `list-tenants`, `create-namespace`, `get-topic-stats`, etc.\n  - Verified schema upload and compatibility checks\n  - Validated backlog analysis and health check tools"
    },
    {
      "commit": "78da1653763410ce2f6a471c39844f4c84fd1ef1",
      "tree": "f88020715bb6f636718892981604e238e2e3a396",
      "parents": [
        "06f31fafa643b8d0189024ae0f16aa679eeebbef"
      ],
      "author": {
        "name": "Zhianii",
        "email": "1433288571@qq.com",
        "time": "Thu Oct 30 11:45:38 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 30 11:45:38 2025 +0800"
      },
      "message": "[improve][pcip] PCIP-6 Implement the MCP for Pulsar Admin Tool (#16)\n\n* 开源之夏题案 Implement the MCP for Pulsar Admin Tool\n\n* Update picp-6.md\n\nChange Chinese to English"
    },
    {
      "commit": "06f31fafa643b8d0189024ae0f16aa679eeebbef",
      "tree": "212d77d04f81c80e8fdab48fec0092ae4d088668",
      "parents": [
        "6de0430b352eeabf94b6a91d9a093b298ec6a8ee"
      ],
      "author": {
        "name": "sinan liu",
        "email": "liusinan1998@gmail.com",
        "time": "Thu Oct 30 11:42:20 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 30 11:42:20 2025 +0800"
      },
      "message": "[improve][pcip] PCIP-4 Improve delayed RPC message handling in pulsar-rpc (#12)\n\n* optimize the delay RPC future\n\n* PCIP-4 Improve delayed RPC message handling in pulsar-rpc"
    },
    {
      "commit": "6de0430b352eeabf94b6a91d9a093b298ec6a8ee",
      "tree": "df124571ab55acfe270a1ccfcbba1cae1519cb07",
      "parents": [
        "892df9236dd65f29f4c774772db7ab9db7fb2e0d"
      ],
      "author": {
        "name": "Aurora Twinkle",
        "email": "foreverlove15q@gmail.com",
        "time": "Thu Jun 05 14:13:36 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 05 14:13:36 2025 +0800"
      },
      "message": "fix[client]: update pulsar version and use MessageListenerExecutor from pulsar-client release lib (#15)\n\n### Motivation\nReplace the mock `MessageListenerExecutor` with the official package"
    },
    {
      "commit": "892df9236dd65f29f4c774772db7ab9db7fb2e0d",
      "tree": "b9f5183aa60bdc087fe73e3e01a8a869e358ee98",
      "parents": [
        "fd3cddaae66dd88db2b5f356ee1022cae06a4054"
      ],
      "author": {
        "name": "Xiangying Meng",
        "email": "55571188+liangyepianzhou@users.noreply.github.com",
        "time": "Tue Dec 17 23:20:26 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 17 23:20:26 2024 +0800"
      },
      "message": "PCIP-3 Pulsar Extended Transaction API Enhancement Proposal (#11)\n\n### Motivation\r\n\r\nThe motivation behind this proposal is to address the issue of duplicate message consumption when using Fail-over subscription mode with cumulative Ack in Pulsar. Despite the use of transactions, achieving exactly-once semantics has been problematic due to the inherent behavior of cumulative Ack. This issue is particularly challenging to resolve within the constraints of the Pulsar main repository for several reasons:\r\n\r\n- **Complexity and Longevity**: Fixing this issue without altering the Client API is complex and time-consuming.\r\n- **Confusing API Usage**: The existing transaction APIs in Pulsar are often confusing, with methods like `abort()` and `commit()` appearing synchronous but functioning asynchronously. This leads to incorrect usage patterns, such as needing to call `abort().get()` and `commit().get()` for proper operation.\r\n- **API Modification Challenges**: Modifying the Client API in the Pulsar main repository is difficult due to the uncertainty of whether a new solution will be perfect and the lengthy API update cycle.\r\n\r\n### Modifications\r\n\r\nThe proposed solution involves designing a new transaction API in the contributor repository that wraps the original Transaction API. This approach offers several benefits:\r\n\r\n- **Concise Solution**: By wrapping the original API, the problem can be solved in a straightforward and concise manner.\r\n- **Best Practice Reference**: This wrapping serves as a best practice example that does not disrupt existing users\u0027 usage while providing a reference solution for those encountering similar issues.\r\n- **Enhanced Usability**: The new API aims to clarify and optimize the transaction methods, making them more intuitive and less prone to misuse, thus improving the overall usability and clarity of transactional operations in Pulsar.\r\n\r\nCo-authored-by: xiangying \u003cxiangying@apache.org\u003e"
    },
    {
      "commit": "fd3cddaae66dd88db2b5f356ee1022cae06a4054",
      "tree": "d961ec9c0297caa2fe283b0ffac587a5474fc866",
      "parents": [
        "033bcc7cf2f4f3ea4a91b642669bd11abd1dea6f"
      ],
      "author": {
        "name": "sinan liu",
        "email": "liusinan1998@gmail.com",
        "time": "Fri Dec 06 10:16:31 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 06 10:16:31 2024 +0800"
      },
      "message": "[improve][pcip] PCIP-2 Distributed RPC framework implemented by the Pulsar client (#6)\n\n**Feedback is not positive due to PIP-371.**\r\nhttps://github.com/apache/pulsar/pull/23143\r\nhttps://github.com/apache/pulsar/pull/23194\r\n\r\n**We need to implement this distributed RPC framework in a way that does not intrude into the pulsar core library. Therefore, we need to use two topics, one is the request topic and the other is the reply topic. The client side sends RPC requests to the request topic, the server side receives request message and performs customized processing, and finally sends them to the reply topic. The client receives the reply message and returns.**\r\n\r\n### Motivation\r\n\r\n\u003c!-- Explain here the context, and why you\u0027re making that change. What is the problem you\u0027re trying to solve. --\u003e\r\nAs we known，Pulsar\u0027s current **asynchronous** publish-subscribe model serves well for decoupled message distribution, but it lacks a native mechanism for handling **synchronous** interactions typical of Remote Procedure Calls (RPC).\r\n\r\nThis request-reply model can greatly enhance the utility of Pulsar. We can then use Pulsar as RPC.\r\n\r\nWhy would we use Pulsar for this RPC call?\r\n\r\n- **Implement RPC using Apache Pulsar. Requests can be sent through a client, received by one or more servers and processed in parallel. Finally, the server returns all processing results after processing, and the client can perform summary and other operations after receiving them.**\r\n- **This proposal to achieve the function is `request`. `Request` and existing send function of pulsar can be mixed to same topic. This means that the user can choose, and the call to the server side (consumer) can be asynchronous or synchronous, which is controlled by the user flexibly.**\r\n- You can directly use Pulsar\u0027s own delaying messages, that is, you can execute RPC regularly.\r\n- You can directly use Pulsar\u0027s own load balancing mechanism.\r\n- You can directly use Pulsar\u0027s own message consumption throttling mechanism.\r\n- You can directly use Pulsar\u0027s own expansion and contraction mechanism.\r\n- You can directly use Pulsar\u0027s own message call tracking, monitoring, and logging mechanisms.\r\n\r\n### Modifications\r\n\r\n![RPC.drawio](https://github.com/user-attachments/assets/91208b7b-7f65-4a22-8bfb-fc3161e4ec18)"
    },
    {
      "commit": "033bcc7cf2f4f3ea4a91b642669bd11abd1dea6f",
      "tree": "73a62e5a9049da8b82034b9e299e5175d83fc06f",
      "parents": [
        "c15093e8ffad426ddb1d9d046ae45c2b76210283"
      ],
      "author": {
        "name": "StevenLuMT",
        "email": "lsj_sdjzu@126.com",
        "time": "Tue Nov 19 19:35:07 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 19 19:35:07 2024 +0800"
      },
      "message": "[improve][pcip] PCIP-1 Add the development process for pulsar-java-contrib project (#10)\n\n* Add the development process\r\n\r\n* Update pcip/README.md\r\n\r\nCo-authored-by: Xiangying Meng \u003c55571188+liangyepianzhou@users.noreply.github.com\u003e\r\n\r\n* Update pcip/README.md\r\n\r\nCo-authored-by: Xiangying Meng \u003c55571188+liangyepianzhou@users.noreply.github.com\u003e\r\n\r\n* Update pcip/README.md\r\n\r\nCo-authored-by: Xiangying Meng \u003c55571188+liangyepianzhou@users.noreply.github.com\u003e\r\n\r\n* Update pcip/README.md\r\n\r\nCo-authored-by: Xiangying Meng \u003c55571188+liangyepianzhou@users.noreply.github.com\u003e\r\n\r\n* update some describe\r\n\r\n---------\r\n\r\nCo-authored-by: nuolin \u003clushiji@xiaohongshu.com\u003e\r\nCo-authored-by: Xiangying Meng \u003c55571188+liangyepianzhou@users.noreply.github.com\u003e"
    },
    {
      "commit": "c15093e8ffad426ddb1d9d046ae45c2b76210283",
      "tree": "ebb42229d2a79289addc86b0dab45049c1009960",
      "parents": [
        "a033eb135c854eaaa1384f2961c977dd55598e6a"
      ],
      "author": {
        "name": "Xiangying Meng",
        "email": "55571188+liangyepianzhou@users.noreply.github.com",
        "time": "Fri Aug 23 20:56:25 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 23 20:56:25 2024 +0800"
      },
      "message": "[Build] Update Spotless configuration (#5)\n\n* [Build] Update Spotless configuration\r\n\r\n* delete comment\r\n\r\n* delete endWithNewLine\r\n\r\n* Delete indentAttribute and add sort_order.xml\r\n\r\n* license\r\n\r\n* google-java-format.version\r\n\r\n---------\r\n\r\nCo-authored-by: xiangying \u003cmengxiangying@xiaohongshu.com\u003e"
    },
    {
      "commit": "a033eb135c854eaaa1384f2961c977dd55598e6a",
      "tree": "e39a7d00b6c5afa6c92aa230cf3ea852f270cca0",
      "parents": [
        "d8ed92e7411b217f54f8fe52d5931029fe48855f"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Fri Aug 23 11:30:23 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 23 16:30:23 2024 +0800"
      },
      "message": "Remove broken link and unnecessary sentence in README.md (#4)\n\n"
    },
    {
      "commit": "d8ed92e7411b217f54f8fe52d5931029fe48855f",
      "tree": "12902239b23e4d071afbda21f315297cccfd1eac",
      "parents": [
        "c1bd256639d2dafff9c86bd23033b6c67270c32f"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Fri Aug 23 11:15:28 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 23 01:15:28 2024 -0700"
      },
      "message": "Fix broken links in README.md (#3)\n\n* Fix broken \"Plugin Contribution Guide\" link\r\n\r\n* Fix another broken link"
    },
    {
      "commit": "c1bd256639d2dafff9c86bd23033b6c67270c32f",
      "tree": "e68e62af1ff80c7518638b3d6c0cbf3db7d38b52",
      "parents": [
        "3db3101192ee114d0a321a98d74a0a8fba5e1b42"
      ],
      "author": {
        "name": "Xiangying Meng",
        "email": "55571188+liangyepianzhou@users.noreply.github.com",
        "time": "Fri Aug 23 16:09:29 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 23 01:09:29 2024 -0700"
      },
      "message": "Initial Setup: Apache Pulsar Contributor Repository Structure (#2)\n\n"
    },
    {
      "commit": "3db3101192ee114d0a321a98d74a0a8fba5e1b42",
      "tree": "1e40d0abde07ccd00c21d8ccb498d8d1705d010d",
      "parents": [
        "cf77d27729a3ffe7c09620322dc64731c71b1f08"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@apache.org",
        "time": "Wed Aug 21 07:50:37 2024 +0300"
      },
      "committer": {
        "name": "Lari Hotari",
        "email": "lhotari@apache.org",
        "time": "Wed Aug 21 07:50:37 2024 +0300"
      },
      "message": "Add .asf.yaml for pulsar-java-contrib\n"
    },
    {
      "commit": "cf77d27729a3ffe7c09620322dc64731c71b1f08",
      "tree": "791901d3a8c54091cb005a7d5e602aae6aba5d43",
      "parents": [],
      "author": {
        "name": "Xiangying Meng",
        "email": "55571188+liangyepianzhou@users.noreply.github.com",
        "time": "Tue Aug 20 20:48:00 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 20 20:48:00 2024 +0800"
      },
      "message": "Initial commit"
    }
  ]
}
