-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdraft-proposal.rtf
More file actions
234 lines (220 loc) · 24.2 KB
/
draft-proposal.rtf
File metadata and controls
234 lines (220 loc) · 24.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
{\rtf1\ansi\ansicpg1252\cocoartf2867
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Bold;\f1\fnil\fcharset0 HelveticaNeue;\f2\fnil\fcharset0 HelveticaNeue-BoldItalic;
\f3\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red59\green60\blue61;\red255\green255\blue255;\red4\green23\blue117;
\red29\green29\blue29;}
{\*\expandedcolortbl;;\cssrgb\c29804\c30196\c30588;\cssrgb\c100000\c100000\c100000;\cssrgb\c1176\c15294\c53333;
\cssrgb\c15294\c15294\c14902;}
{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}
{\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid101\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid2}
{\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid201\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid3}
{\list\listtemplateid4\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid301\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid4}
{\list\listtemplateid5\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid401\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{circle\}}{\leveltext\leveltemplateid402\'01\uc0\u9702 ;}{\levelnumbers;}\fi-360\li1440\lin1440 }{\listname ;}\listid5}
{\list\listtemplateid6\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid501\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{circle\}}{\leveltext\leveltemplateid502\'01\uc0\u9702 ;}{\levelnumbers;}\fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{square\}}{\leveltext\leveltemplateid503\'01\uc0\u9642 ;}{\levelnumbers;}\fi-360\li2160\lin2160 }{\listname ;}\listid6}
{\list\listtemplateid7\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid601\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{circle\}}{\leveltext\leveltemplateid602\'01\uc0\u9702 ;}{\levelnumbers;}\fi-360\li1440\lin1440 }{\listname ;}\listid7}}
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}}
\margl1440\margr1440\vieww11520\viewh8400\viewkind0
\deftab720
\pard\pardeftab720\partightenfactor0
\f0\b\fs28 \cf2 \cb3 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Background\cb1 \
\pard\pardeftab720\sa200\partightenfactor0
\f1\b0 \cf2 \cb3 A coding agent is an advanced AI tool that automates and assists with various software development tasks, going beyond simple code generation to handle multi-step, contextual challenges. Unlike earlier AI code assistants that primarily offered code completion and text-based chat, a coding agent can take an instruction in plain language (e.g., "Build a to-do app" or "Fix this bug") and break it down, write code, run tests, and adapt based on the results.\cb1 \
\cb3 Developers can expand the context-awareness of a coding agent by connecting it to 1 or more\'a0{\field{\*\fldinst{HYPERLINK "https://modelcontextprotocol.io/docs/getting-started/intro"}}{\fldrslt \cf4 \strokec4 Model Context Protocol\'a0}}(MCP) servers. \'a0The specification, released in November 2024 by Anthropic, \'a0provides a standardized way to connect AI agents to different data sources and tools. \'a0 MCP Hosts are AI-powered applications support accessing functions and data over MCP. \'a0They consume these services by opening an MCP Client connection to an MCP Server. \'a0An MCP Server is a lightweight program that makes tools, resources and prompts available to the agent.\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls1\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Resources are represented by URIs and can be resolved to streamable content and may support subscriptions\cb1 \
\ls1\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Tools are functions invocable by an Agent. \'a0Their inputs and outputs are described via a json schema. \'a0The descriptions of the function, input and outputs are used by the agent to determine when to invoke them, how to construct input and how to interpret output.\cb1 \
\ls1\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Prompts are templates for constructing input to an Agent.\cb1 \
\ls1\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 For an intro to other features, consult the\'a0{\field{\*\fldinst{HYPERLINK "https://modelcontextprotocol.io/docs/getting-started/intro"}}{\fldrslt \cf4 \strokec4 MCP specification}}\cb1 \
\pard\pardeftab720\sa200\partightenfactor0
\cf2 \cb3 MCP servers can be accessed locally over STDIO or remotely over HTTP, and these servers can be served from within an IDE's process.\cb1 \
\cb3 Editors and IDEs and can integrate Coding Agents into their user experience by adopting the\'a0{\field{\*\fldinst{HYPERLINK "https://agentclientprotocol.com/overview/introduction"}}{\fldrslt \cf4 \strokec4 Agent Client Protocol}}. \'a0 Open sourced from a collaboration between the Zed Editor and Google Gemini CLI teams, this protocol defines a JSONRPC contract between an editor client and a coding agent. \'a0Features of the protocol include:\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls2\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Chat Session Lifecycle\cb1 \
\ls2\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 User Prompt Lifecycle\cb1 \
\ls2\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Client can forward list of MCP Servers to Agent\cb1 \
\ls2\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Toggling Session Modes and Models\cb1 \
\ls2\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Tool Use Confirmation\cb1 \
\ls2\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 API for read/write file/editor buffers\cb1 \
\ls2\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Embedded and referenced resources\cb1 \
\ls2\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 / # @ commands\cb1 \
\pard\pardeftab720\sa200\partightenfactor0
\cf2 \cb3 The list of\'a0{\field{\*\fldinst{HYPERLINK "https://agentclientprotocol.com/overview/agents"}}{\fldrslt \cf4 \strokec4 agents that support the protocol}}\'a0or have 3rd party adapters include:\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls3\ilvl0
\f0\b \cf4 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://github.com/google-gemini/gemini-cli"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 Gemini CLI}}
\f1\b0 \cf2 \cb1 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 \
\ls3\ilvl0
\f0\b \cf4 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://docs.anthropic.com/en/docs/claude-code/overview"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 Claude Code}}
\f1\b0 \cf2 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 \'a0(via\'a0{\field{\*\fldinst{HYPERLINK "https://github.com/zed-industries/claude-code-acp"}}{\fldrslt
\f0\b \cf4 \strokec4 Zed\'92s SDK adapter}})\cb1 \
\ls3\ilvl0
\f0\b \cf4 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://developers.openai.com/codex/cli"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 Codex CLI}}
\f1\b0 \cf2 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 \'a0(via\'a0{\field{\*\fldinst{HYPERLINK "https://github.com/zed-industries/codex-acp"}}{\fldrslt
\f0\b \cf4 \strokec4 Zed\'92s adapter}})\cb1 \
\ls3\ilvl0
\f0\b \cf4 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://block.github.io/goose/docs/guides/acp-clients"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 Goose}}
\f1\b0 \cf2 \cb1 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 \
\pard\pardeftab720\sa200\partightenfactor0
\cf2 \cb3 The list of\'a0{\field{\*\fldinst{HYPERLINK "https://agentclientprotocol.com/overview/clients"}}{\fldrslt \cf4 \strokec4 editors / IDEs that support the protocol}}\'a0or have adapters include:\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls4\ilvl0
\f0\b \cf4 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://zed.dev/docs/ai/external-agents"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 Zed}}
\f1\b0 \cf2 \cb1 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 \
\ls4\ilvl0
\f0\b \cf4 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://blog.jetbrains.com/ai/2025/10/jetbrains-zed-open-interoperability-for-ai-coding-agents-in-your-ide/"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 JetBrains\'a0
\f2\i (coming soon)}}
\f1\b0 \cf2 \cb1 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls4\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Emacs via\'a0{\field{\*\fldinst{HYPERLINK "https://github.com/xenodium/agent-shell"}}{\fldrslt
\f0\b \cf4 \strokec4 agent-shell.el}}\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls4\ilvl0
\f0\b \cf4 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://neovim.io/"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 neovim}}
\f1\b0 \cf2 \cb1 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 \
\pard\pardeftab720\partightenfactor0
\cf2 \cb3 \'a0\cb1 \
\pard\pardeftab720\partightenfactor0
\f0\b \cf2 \cb3 Scope\cb1 \
\pard\pardeftab720\sa200\partightenfactor0
\f1\b0 \cf2 \cb3 We propose adding two features to the Eclipse IDE Ecosystem that are implementations of the Model Context Protocol (MCP) \'a0and Agent Client Protocol (ACP).\cb1 \
\cb3 The first feature will add support for running a Model Context Protocol server within the Eclipse IDE VM. \'a0Prompts, Tools and Resources running on these servers will be able to interact with any public API running in the Eclipse instance, enabling coding agents to interact with elements of the IDE and its workspace. \'a0An extension point and annotations framework will enable plugins to contribute tools, resource controllers, and prompts to the IDE MCP server.\cb1 \
\cb3 The second feature will add a Coding Agents view that implements the Agent-Client Protocol specification. \'a0It will feature an in-IDE chat experience where users can prompt one of several agents and receive responses. \'a0Agents will be able to modify Text Editor documents as will as files in the workspace. \'a0Agents will be able to run tools and commands approved by the user. \'a0\cb1 \
\pard\pardeftab720\partightenfactor0
\cf2 \cb3 The scope of these two features will be bounded by the scopes of the MCP and ACP protocols which are under a year old and are still evolving.\cb1 \
\pard\pardeftab720\partightenfactor0
\f0\b \cf2 \cb3 Description\cb1 \
\pard\pardeftab720\sa200\partightenfactor0
\f1\b0 \cf2 \cb3 The Scope of an MVP would include\cb1 \
\pard\pardeftab720\sa200\partightenfactor0
\f3\fs33\fsmilli16800 \cf5 \cb3 \strokec5 Agent Contexts\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls5\ilvl0
\f1\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 A default MCP server that can be enabled to serve over an HTTP port from within the Eclipse IDE\cb1 \
\ls5\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 A set of built-in platform MCP tools and resources, including:\cb1 \
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
\ls5\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Tools granting access to workspace, editors, consoles, markers, and annotations, \'85\cb1 \
\ls5\ilvl1\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Resource Providers granting access to workspace, editors, and consoles, ...\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls5\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 An extension point for platform and 3rd party plugins to contribute MCP tools, resources and prompts to the Eclipse MCP server.\cb1 \
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
\ls5\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Plugins contribute MCP resources by annotating Java functions a combination of with\'a0{\field{\*\fldinst{HYPERLINK "https://github.com/spring-ai-community/mcp-annotations"}}{\fldrslt \cf4 \ul \ulc4 \strokec4 MCP Annotations}}\'a0and\'a0{\field{\*\fldinst{HYPERLINK "https://github.com/FasterXML/jackson-annotations"}}{\fldrslt \cf4 \strokec4 Jackson Annotations}}\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls5\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Centralized preferences, tracing, and capabilities\cb1 \
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
\ls5\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Users can customize which of the installed MCP tools are in scope for an activity using Capabilities or perhaps on a tool by tool basis.\cb1 \
\pard\pardeftab720\sa200\partightenfactor0
\f3\fs33\fsmilli16800 \cf5 \cb3 \strokec5 Coding Agents\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls6\ilvl0
\f1\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 A Coding Agent view that supports entering prompts to and displaying responses from a coding agent\cb1 \
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
\ls6\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability to forward text, resource links, embedded resources, perhaps images, and perhaps audio to a coding agent.\cb1 \
\ls6\ilvl1\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability to display rich content such as Markdown, Styled Code Blocks, and perhaps Mermaid Diagrams\cb1 \
\ls6\ilvl1\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability to connect to one or more Coding Agent\cb1 \
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\partightenfactor0
\ls6\ilvl2\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9642 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability to customize agent startup commands\cb1 \
\ls6\ilvl2\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9642 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability to automatically download and update coding agent to an .eclipseagents folder in the user's home directory\cb1 \
\ls6\ilvl2\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9642 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Perhaps ability to customize startup commands to invoke any custom coding agent\cb1 \
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
\ls6\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability to start a new chat session\cb1 \
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\partightenfactor0
\ls6\ilvl2\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9642 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability to automatically configure chat session with select MCP servers\cb1 \
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
\ls6\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability for coding agent to edit workspace files and Text Editor synchronized documents.\cb1 \
\ls6\ilvl1\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability to add projects, folders, files and selected text to a chat session\cb1 \
\ls6\ilvl1\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability to use / & # shortcut commands with content assistance\cb1 \
\ls6\ilvl1\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Ability for user to apply granular approval for agent tool usage\cb1 \
\ls6\ilvl1\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Keyboard and Screen Reader accessibility\cb1 \
\ls6\ilvl1\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Initial choice of agent(s) will likely lean towards one with good performance, good onboarding, and enough free usage to evaluate the overall experience.\cb1 \
\pard\pardeftab720\partightenfactor0
\f0\b \cf2 \cb3 Legal Issues\cb1 \
\pard\pardeftab720\sa200\partightenfactor0
\f1\b0 \cf2 \cb3 Clearance for using the following open source libraries:\cb1 \
\pard\pardeftab720\partightenfactor0
\cf2 \cb3 A, B, C\cb1 \
\pard\pardeftab720\partightenfactor0
\f0\b \cf2 \cb3 Why Here?\cb1 \
\pard\pardeftab720\sa200\partightenfactor0
\f1\b0 \cf2 \cb3 Adding an open source, extensible MCP Server framework will enable the platform, third-parties and end-users to easily instrument features for Coding Agent interactivity. \'a0These services can be consumed by any MCP Host such as stand-alone applications like Claude Desktop, command-line CLIs like Google Gemini (which may be run in an external terminal or in the Eclipse Terminal view, and in-IDE experiences such as Copilot for Eclipse and the proposed ACP-powered Coding Agents view.\cb1 \
\pard\pardeftab720\partightenfactor0
\cf2 \cb3 An open source ACP Chat experience enables Coding Agents to have read and interact to the internal state of the IDE, and because the agents can accept a list of MCP servers as input, can connect to the IDE's MCP servers without the user having to copy/paste MCP urls into an agents JSON configuration file. \'a0Re-using the wildwebdevloper's node manager means developers without node skills can consume npm powered coding agents without manual intervention.\cb1 \
\pard\pardeftab720\partightenfactor0
\f0\b \cf2 \cb3 Future Work\cb1 \
\pard\pardeftab720\sa200\partightenfactor0
\f1\b0 \cf2 \cb3 A minimum viable product release may implement a subset of the available features in the ACP spec and support for a subset of the compatible coding agents. \'a0Support for coding agents may be further limited to those applicable to Eclipse IDE use cases. \'a0Further features and agents can be adopted over time. \'a0Both the MCP and ACP protocols are under a year old and are still evolving, and changes will need to be evaluated for currency and adoption.\cb1 \
\cb3 Features that may be excluded from an MVP include:\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls7\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Support for additional Coding Agents out-of-the-box\cb1 \
\ls7\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Load Prior Chat Sessions\cb1 \
\ls7\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 A registry for external local or remote MCP servers to forward to the coding agent.\cb1 \
\ls7\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Tools to context-switch between sets of MCP services\cb1 \
\ls7\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Support for changing the Mode and Model of a coding agent.\cb1 \
\ls7\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Support for letting a coding agent proxy terminal commands through the IDE.\cb1 \
\ls7\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Inclusion of additional built-in MCP tools within scope of this project\cb1 \
\ls7\ilvl0\cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Plugins outside the scope of this project contributing their own tools and resources to the MCP server using our extension point.\cb1 \
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
\ls7\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u9702 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 For example, Data Tools could contribute MCP tools to run sql, list tables, ...\cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls7\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Elements cut from the current MVP scope due to time-constraints\cb1 \
}