TerminalCalm commited on
Commit
d6a3985
·
verified ·
1 Parent(s): 78435ac

feat: Update MCP server logic and fix warnings

Browse files
Files changed (2) hide show
  1. app.py +51 -12
  2. requirements.txt +1 -1
app.py CHANGED
@@ -145,6 +145,24 @@ with gr.Blocks() as demo:
145
  llm_last_frame_img = gr.Image(label="Last Frame", type="filepath", interactive=False)
146
  llm_gif_output = gr.Image(label="Generated GIF", type="filepath", interactive=False)
147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  # --- Event Handlers ---
149
 
150
  # --- System Events ---
@@ -178,13 +196,15 @@ with gr.Blocks() as demo:
178
  get_first_frame_btn.click(
179
  fn=video_tools.getFirstFrame,
180
  inputs=uploaded_video_path_state,
181
- outputs=first_frame_img
 
182
  )
183
 
184
  get_last_frame_btn.click(
185
  fn=video_tools.getLastFrame,
186
  inputs=uploaded_video_path_state,
187
- outputs=last_frame_img
 
188
  )
189
 
190
  # --- LLM Events ---
@@ -221,6 +241,35 @@ with gr.Blocks() as demo:
221
  ]
222
  )
223
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  # --- App Load Event ---
225
  demo.load(
226
  fn=on_load_tasks,
@@ -239,16 +288,6 @@ with gr.Blocks() as demo:
239
 
240
  # --- MCP Server Launch ---
241
  if __name__ == "__main__":
242
- # Expose the functions we want to be available as tools
243
- demo.add_tools(
244
- {
245
- "letter_counter": letter_counter,
246
- "getFirstFrame": video_tools.getFirstFrame,
247
- "getLastFrame": video_tools.getLastFrame,
248
- "convert_mp4_to_gif": video_tools.convert_mp4_to_gif,
249
- }
250
- )
251
- # Launch the Gradio app with MCP server enabled
252
  demo.launch(mcp_server=True)
253
 
254
 
 
145
  llm_last_frame_img = gr.Image(label="Last Frame", type="filepath", interactive=False)
146
  llm_gif_output = gr.Image(label="Generated GIF", type="filepath", interactive=False)
147
 
148
+ # Hidden tab for exposing functions as MCP tools
149
+ with gr.Tab("MCP Tools", visible=False):
150
+ gr.Markdown("## Tools for MCP Server")
151
+
152
+ # Input for video path for MCP tools
153
+ mcp_video_path_input = gr.Textbox(label="Video Path for MCP")
154
+
155
+ # For letter_counter
156
+ lc_word_input = gr.Textbox(label="Word")
157
+ lc_letter_input = gr.Textbox(label="Letter")
158
+ lc_output = gr.Number(label="Count")
159
+ lc_btn = gr.Button("Count Letters")
160
+
161
+ # For video tools
162
+ mcp_get_first_frame_btn = gr.Button("MCP Get First Frame")
163
+ mcp_get_last_frame_btn = gr.Button("MCP Get Last Frame")
164
+ gif_btn = gr.Button("Convert to GIF")
165
+
166
  # --- Event Handlers ---
167
 
168
  # --- System Events ---
 
196
  get_first_frame_btn.click(
197
  fn=video_tools.getFirstFrame,
198
  inputs=uploaded_video_path_state,
199
+ outputs=first_frame_img,
200
+ api_name="getFirstFrame"
201
  )
202
 
203
  get_last_frame_btn.click(
204
  fn=video_tools.getLastFrame,
205
  inputs=uploaded_video_path_state,
206
+ outputs=last_frame_img,
207
+ api_name="getLastFrame"
208
  )
209
 
210
  # --- LLM Events ---
 
241
  ]
242
  )
243
 
244
+ # --- Hidden MCP Tool Events ---
245
+ lc_btn.click(
246
+ fn=letter_counter,
247
+ inputs=[lc_word_input, lc_letter_input],
248
+ outputs=lc_output,
249
+ api_name="letter_counter"
250
+ )
251
+
252
+ mcp_get_first_frame_btn.click(
253
+ fn=video_tools.getFirstFrame,
254
+ inputs=mcp_video_path_input,
255
+ outputs=llm_first_frame_img, # Can reuse an existing image component
256
+ api_name="getFirstFrame"
257
+ )
258
+
259
+ mcp_get_last_frame_btn.click(
260
+ fn=video_tools.getLastFrame,
261
+ inputs=mcp_video_path_input,
262
+ outputs=llm_last_frame_img, # Can reuse an existing image component
263
+ api_name="getLastFrame"
264
+ )
265
+
266
+ gif_btn.click(
267
+ fn=video_tools.convert_mp4_to_gif,
268
+ inputs=mcp_video_path_input,
269
+ outputs=llm_gif_output,
270
+ api_name="convert_mp4_to_gif"
271
+ )
272
+
273
  # --- App Load Event ---
274
  demo.load(
275
  fn=on_load_tasks,
 
288
 
289
  # --- MCP Server Launch ---
290
  if __name__ == "__main__":
 
 
 
 
 
 
 
 
 
 
291
  demo.launch(mcp_server=True)
292
 
293
 
requirements.txt CHANGED
@@ -1,2 +1,2 @@
1
- gradio[mcp]==4.29.0
2
  requests
 
1
+ gradio[mcp]
2
  requests